User interface for tool configuration and data capture

ABSTRACT

A programmable power tool and method and systems of programming a power tool using wireless communication. An external device having a processor and a transceiver establishes a communication link with the power tool. The external device receives, with the transceiver, a first mode profile stored on the power tool. The first mode profile is defined by a profile type and a first value associated with a parameter for executing the profile type. The external device displays a control screen including the profile type and the parameter at the first value, and receives a user input. The external device generates, in response to the user input, a second mode profile by modifying the parameter to be at a second value. The external device transmits, with the transceiver, the second mode profile to the power tool.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/155,489, filed on May 16, 2016, now U.S. Pat. No. 10,295,990, whichclaims priority to U.S. Provisional Patent Application No. 62/279,998,filed on Jan. 18, 2016; U.S. Provisional Patent Application No.62/175,963, filed on Jun. 15, 2015; and U.S. Provisional PatentApplication No. 62/163,228, filed on May 18, 2015, the entire contentsof which are hereby incorporated by reference.

FIELD OF THE INVENTION

The present invention relates to power tools that communicate with anexternal device.

SUMMARY

In one embodiment, a method of programming a power tool is provided. Themethod includes establishing, with a transceiver, a communication linkbetween a power tool and an external device, the external device havingthe transceiver and an electronic processor. The transceiver receives afirst mode profile stored on the power tool, the first mode profilebeing defined by a profile type and a first value associated with aparameter for executing the profile type. A control screen is displayedat the external device, the control screen including the profile typeand the parameter at the first value. The method further includesreceiving a user input at the external device and generating, inresponse to the user input, a second mode profile by modifying theparameter to be at a second value. The method also includestransmitting, with the transceiver, the second mode profile to the powertool.

In another embodiment, another method of programming a power tool isprovided. The method includes establishing, with a transceiver, acommunication link between a power tool and an external device, thepower tool including the transceiver, a memory, and an electronicprocessor. The transceiver transmits a first mode profile stored on thememory, the first mode profile being defined by a first profile type anda first value associated with a parameter for executing the firstprofile type. The transceiver further receives a second mode profilefrom the external device, the second mode profile being defined by thefirst profile type and a second value associated with the parameter forexecuting the first profile type. The method further includesoverwriting in the memory, with the electronic processor, the first modeprofile with the second mode profile. The method also includesoperating, with the electronic processor, the power tool according tothe second mode profile.

In another embodiment, a power tool is provided. The power tool includesa motor; a wireless communication controller, a memory, and anelectronic processor coupled to the motor, the memory, and the wirelesscommunication controller. The wireless communication controller includesa transceiver and is configured to establish a communication linkbetween the power tool and an external device. The memory is configuredto store a mode profile for operating the motor. The electronicprocessor is configured to transmit, with the transceiver, a first modeprofile stored on the memory, and to receive, with the transceiver, asecond mode profile from the external device. The first mode profile isdefined by a first profile type and a first value associated with aparameter for executing the first profile type. The second mode profileis defined by the first profile type and a second value associated withthe parameter for executing the first profile type. The electronicprocessor is further configured to overwrite, on the memory, the firstmode profile with the second mode profile, and to control the motor tooperate according to the second mode profile

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a communication system according to one embodiment ofthe invention.

FIG. 2 illustrates a power tool of the communication system.

FIGS. 3A-B illustrate a schematic diagram of the power tool.

FIG. 4 illustrates a mode pad of the power tool.

FIG. 5 illustrates a schematic diagram of the communication systemincluding the power tool.

FIGS. 6-11 illustrate exemplary screenshots of a user interface of anexternal device of the communication system.

FIG. 12 illustrates a flow chart for saving profile data of the powertool.

FIG. 13 illustrates a flow chart for locking out mode configuration ofthe power tool.

FIG. 14 illustrates a wakeup circuit of the power tool

FIGS. 15A-D illustrate further exemplary screenshots of the userinterface of the external device of the communication system.

FIG. 16 illustrates a hammer drill/driver of the communication system.

FIGS. 17A-B illustrate further exemplary screenshots of the userinterface of the external device of the communication system.

FIG. 18 illustrates a further exemplary screenshot of the user interfaceof the external device of the communication system.

FIG. 19 is a side view of an exemplary groove-joint coupling.

FIG. 20 illustrates a further exemplary screenshot of the user interfaceof the external device of the communication system.

FIG. 21 illustrates a flowchart of an exemplary implementation of abreakaway profile on the power tool.

FIG. 22 illustrates a further exemplary screenshot of the user interfaceof the external device of the communication system.

FIG. 23 illustrates a flowchart of an exemplary implementation of afinish control profile on the power tool.

FIG. 24 illustrates a further exemplary screenshot of the user interfaceof the external device of the communication system.

FIG. 25 illustrates a flowchart of an exemplary implementation of a gearratio change option on the power tool.

FIG. 26 illustrates a flowchart of a method of programming a power toolfrom a perspective of an external device of the communication system ofFIG. 1.

FIG. 27 illustrates a flowchart of the method of programming a powertool from a perspective of the power tool of the communication system ofFIG. 1.

DETAILED DESCRIPTION

Before any embodiments of the invention are explained in detail, it isto be understood that the invention is not limited in its application tothe details of construction and the arrangement of components set forthin the following description or illustrated in the following drawings.The invention is capable of other embodiments and of being practiced orof being carried out in various ways. Also, it is to be understood thatthe phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limited. The use of“including,” “comprising” or “having” and variations thereof herein ismeant to encompass the items listed thereafter and equivalents thereofas well as additional items. The terms “mounted,” “connected” and“coupled” are used broadly and encompass both direct and indirectmounting, connecting and coupling. Further, “connected” and “coupled”are not restricted to physical or mechanical connections or couplings,and can include electrical connections or couplings, whether direct orindirect.

It should be noted that a plurality of hardware and software baseddevices, as well as a plurality of different structural components maybe utilized to implement the invention. Furthermore, and as described insubsequent paragraphs, the specific configurations illustrated in thedrawings are intended to exemplify embodiments of the invention and thatother alternative configurations are possible. The terms “processor”“central processing unit” and “CPU” are interchangeable unless otherwisestated. Where the terms “processor” or “central processing unit” or“CPU” are used as identifying a unit performing specific functions, itshould be understood that, unless otherwise stated, those functions canbe carried out by a single processor, or multiple processors arranged inany form, including parallel processors, serial processors, tandemprocessors or cloud processing/cloud computing configurations.

FIG. 1 illustrates a communication system 100. The communication system100 includes power tool devices 102 and an external device 108. Eachpower tool device 102 (e.g., battery powered impact driver 102 a, powertool battery pack 102 b, and mains-powered hammer drill 102 c) and theexternal device 108 can communicate wirelessly while they are within acommunication range of each other. Each power tool device 102 maycommunicate power tool status, power tool operation statistics, powertool identification, stored power tool usage information, power toolmaintenance data, and the like. Therefore, using the external device108, a user can access stored power tool usage or power tool maintenancedata. With this tool data, a user can determine how the power tooldevice 102 has been used, whether maintenance is recommended or has beenperformed in the past, and identify malfunctioning components or otherreasons for certain performance issues. The external device 108 can alsotransmit data to the power tool device 102 for power tool configuration,firmware updates, or to send commands (e.g., turn on a work light). Theexternal device 108 also allows a user to set operational parameters,safety parameters, select tool modes, and the like for the power tool102.

The external device 108 may be, for example, a smart phone (asillustrated), a laptop computer, a tablet computer, a personal digitalassistant (PDA), or another electronic device capable of communicatingwirelessly with the power tool device 102 and providing a userinterface. The external device 108 generates the user interface andallows a user to access and interact with tool information. The externaldevice 108 can receive user inputs to determine operational parameters,enable or disable features, and the like. The user interface of theexternal device 108 provides an easy-to-use interface for the user tocontrol and customize operation of the power tool.

The external device 108 includes a communication interface that iscompatible with a wireless communication interface or module of thepower tool device 102. The communication interface of the externaldevice 108 may include a wireless communication controller (e.g., aBluetooth® module), or a similar component. The external device 108,therefore, grants the user access to data related to the power tooldevice 102, and provides a user interface such that the user caninteract with the a processor of the power tool device 102.

In addition, as shown in FIG. 1, the external device 108 can also sharethe information obtained from the power tool device 102 with a remoteserver 112 connected by a network 114. The remote server 112 may be usedto store the data obtained from the external device 108, provideadditional functionality and services to the user, or a combinationthereof. In one embodiment, storing the information on the remote server112 allows a user to access the information from a plurality ofdifferent locations. In another embodiment, the remote server 112 maycollect information from various users regarding their power tooldevices and provide statistics or statistical measures to the user basedon information obtained from the different power tools. For example, theremote server 112 may provide statistics regarding the experiencedefficiency of the power tool device 102, typical usage of the power tooldevice 102, and other relevant characteristics and/or measures of thepower tool device 102. The network 114 may include various networkingelements (routers, hubs, switches, cellular towers, wired connections,wireless connections, etc.) for connecting to, for example, theInternet, a cellular data network, a local network, or a combinationthereof. In some embodiments, the power tool device 102 may beconfigured to communicate directly with the server 112 through anadditional wireless communication interface or with the same wirelesscommunication interface that the power tool device 102 uses tocommunicate with the external device 108.

The power tool device 102 is configured to perform one or more specifictasks (e.g., drilling, cutting, fastening, pressing, lubricantapplication, sanding, heating, grinding, bending, forming, impacting,polishing, lighting, etc.). For example, an impact wrench is associatedwith the task of generating a rotational output (e.g., to drive a bit),while a reciprocating saw is associated with the task of generating areciprocating output motion (e.g., for pushing and pulling a saw blade).The task(s) associated with a particular tool may also be referred to asthe primary function(s) of the tool.

The particular power tool devices 102 illustrated and described herein(e.g., an impact driver) are merely representative. Other embodiments ofthe communication system 100 include a variety of types of power tools102 (e.g., a power drill, a hammer drill, a pipe cutter, a sander, anailer, a grease gun, etc.). FIG. 2 illustrates an example of the powertool devices 102, an impact driver 104 (herein power tool 104). Thepower tool 104 is representative of various types of power tools thatoperate within system 100. Accordingly, the description with respect tothe power tool 104 in the system 100 is similarly applicable to othertypes of power tools. As shown in FIG. 2, the power tool 104 includes anupper main body 202, a handle 204, a battery pack receiving portion 206,mode pad 208, an output drive device or mechanism 210, a trigger 212, awork light 217, and forward/reverse selector 219. The housing of thepower tool 104 (e.g., the main body 202 and the handle 204) are composedof a durable and light-weight plastic material. The drive device 210 iscomposed of a metal (e.g., steel). The drive device 210 on the powertool 104 is a socket. However, each power tool 104 may have a differentdrive device 210 specifically designed for the task (or primaryfunction) associated with the power tool 104. For example, the drivedevice for a power drill may include a bit driver, while the drivedevice for a pipe cutter may include a blade. The battery pack receivingportion 206 is configured to receive and couple to the battery pack(e.g., 102 b of FIG. 1) that provides power to the power tool 104. Thebattery pack receiving portion 206 includes a connecting structure toengage a mechanism that secures the battery pack and a terminal block toelectrically connect the battery pack to the power tool 104. The modepad 208 allows a user to select a mode of the power tool 104 andindicates to the user the currently selected mode of the power tool 104,which are described in greater detail below.

As shown in FIG. 3A, the power tool 104 also includes a motor 214. Themotor 214 actuates the drive device 210 and allows the drive device 210to perform the particular task. A primary power source (e.g., a batterypack) 215 couples to the power tool 104 and provides electrical power toenergize the motor 214. The motor 214 is energized based on the positionof the trigger 212. When the trigger 212 is depressed the motor 214 isenergized, and when the trigger 212 is released, the motor 214 isde-energized. In the illustrated embodiment, the trigger 212 extendspartially down a length of the handle 204; however, in other embodimentsthe trigger 212 extends down the entire length of the handle 204 or maybe positioned elsewhere on the power tool 104. The trigger 212 ismoveably coupled to the handle 204 such that the trigger 212 moves withrespect to the tool housing. The trigger 212 is coupled to a push rod,which is engageable with a trigger switch 213 (see FIG. 3A). The trigger212 moves in a first direction towards the handle 204 when the trigger212 is depressed by the user. The trigger 212 is biased (e.g., with aspring) such that it moves in a second direction away from the handle204, when the trigger 212 is released by the user. When the trigger 212is depressed by the user, the push rod activates the trigger switch 213,and when the trigger 212 is released by the user, the trigger switch 213is deactivated. In other embodiments, the trigger 212 is coupled to anelectrical trigger switch 213. In such embodiments, the trigger switch213 may include, for example, a transistor. Additionally, for suchelectronic embodiments, the trigger 212 may not include a push rod toactivate the mechanical switch. Rather, the electrical trigger switch213 may be activated by, for example, a position sensor (e.g., aHall-Effect sensor) that relays information about the relative positionof the trigger 212 to the tool housing or electrical trigger switch 213.The trigger switch 213 outputs a signal indicative of the position ofthe trigger 212. In some instances, the signal is binary and indicateseither that the trigger 212 is depressed or released. In otherinstances, the signal indicates the position of the trigger 212 withmore precision. For example, the trigger switch 213 may output an analogsignal that various from 0 to 5 volts depending on the extent that thetrigger 212 is depressed. For example, 0 V output indicates that thetrigger 212 is released, 1 V output indicates that the trigger 212 is20% depressed, 2 V output indicates that the trigger 212 is 40%depressed, 3 V output indicates that the trigger 212 is 60% depressed 4V output indicates that the trigger 212 is 80% depressed, and 5 Vindicates that the trigger 212 is 100% depressed. The signal output bythe trigger switch 213 may be analog or digital.

As also shown in FIG. 3A, the power tool 104 also includes a switchingnetwork 216, sensors 218, indicators 220, the battery pack interface222, a power input unit 224, a controller 226, a wireless communicationcontroller 250, and a back-up power source 252. The back-up power source252 includes, in some embodiments, a coin cell battery (FIG. 4) oranother similar small replaceable power source. The battery packinterface 222 is coupled to the controller 226 and couples to thebattery pack 215. The battery pack interface 222 includes a combinationof mechanical (e.g., the battery pack receiving portion 206) andelectrical components configured to and operable for interfacing (e.g.,mechanically, electrically, and communicatively connecting) the powertool 104 with a battery pack 215. The battery pack interface 222 iscoupled to the power input unit 224. The battery pack interface 222transmits the power received from the battery pack 215 to the powerinput unit 224. The power input unit 224 includes active and/or passivecomponents (e.g., voltage step-down controllers, voltage converters,rectifiers, filters, etc.) to regulate or control the power receivedthrough the battery pack interface 222 and to the wireless communicationcontroller 250 and controller 226.

The switching network 216 enables the controller 226 to control theoperation of the motor 214. Generally, when the trigger 212 is depressedas indicated by an output of the trigger switch 213, electrical currentis supplied from the battery pack interface 222 to the motor 214, viathe switching network 216. When the trigger 212 is not depressed,electrical current is not supplied from the battery pack interface 222to the motor 214. In some embodiments, the amount of trigger pulldetected by the trigger switch 213 is related to or corresponds to adesired speed of rotation of the motor 214. In other embodiments, theamount of trigger pull detected by the trigger switch 213 is related toor corresponds to a desired torque.

In response to the controller 226 receiving the activation signal fromthe trigger switch 213, the controller 226 activates the switchingnetwork 216 to provide power to the motor 214. The switching network 216controls the amount of current available to the motor 214 and therebycontrols the speed and torque output of the motor 214. The switchingnetwork 216 may include numerous FETs, bipolar transistors, or othertypes of electrical switches. For instance, the switching network 216may include a six-FET bridge that receives pulse-width modulated (PWM)signals from the controller 226 to drive the motor 214.

The sensors 218 are coupled to the controller 226 and communicate to thecontroller 226 various signals indicative of different parameters of thepower tool 104 or the motor 214. The sensors 218 include Hall sensors218 a, current sensors 218 b, among other sensors, such as, for example,one or more voltage sensors, one or more temperature sensors, and one ormore torque sensors. Each Hall sensor 218 a outputs motor feedbackinformation to the controller 226, such as an indication (e.g., a pulse)when a magnet of the motor's rotor rotates across the face of that Hallsensor. Based on the motor feedback information from the Hall sensors218 a, the controller 226 can determine the position, velocity, andacceleration of the rotor. In response to the motor feedback informationand the signals from the trigger switch 213, the controller 226transmits control signals to control the switching network 216 to drivethe motor 126. For instance, by selectively enabling and disabling theFETs of the switching network 216, power received via the battery packinterface 222 is selectively applied to stator coils of the motor 214 tocause rotation of its rotor. The motor feedback information is used bythe controller 226 to ensure proper timing of control signals to theswitching network 216 and, in some instances, to provide closed-loopfeedback to control the speed of the motor 214 to be at a desired level.

The indicators 220 are also coupled to the controller 226 and receivecontrol signals from the controller 226 to turn on and off or otherwiseconvey information based on different states of the power tool 104. Theindicators 220 include, for example, one or more light-emitting diodes(“LED”), or a display screen. The indicators 220 can be configured todisplay conditions of, or information associated with, the power tool104. For example, the indicators 220 are configured to indicate measuredelectrical characteristics of the power tool 104, the status of thepower tool 104, the mode of the power tool (discussed below), etc. Theindicators 220 may also include elements to convey information to a userthrough audible or tactile outputs.

As described above, the controller 226 is electrically and/orcommunicatively connected to a variety of modules or components of thepower tool 104. In some embodiments, the controller 226 includes aplurality of electrical and electronic components that provide power,operational control, and protection to the components and modules withinthe controller 226 and/or power tool 104. For example, the controller226 includes, among other things, a processing unit 230 (e.g., amicroprocessor, a microcontroller, or another suitable programmabledevice), a memory 232, input units 234, and output units 236. Theprocessing unit 230 (herein, electronic processor 230) includes, amongother things, a control unit 240, an arithmetic logic unit (“ALU”) 242,and a plurality of registers 244 (shown as a group of registers in FIG.3A). In some embodiments, the controller 226 is implemented partially orentirely on a semiconductor (e.g., a field-programmable gate array[“FPGA”] semiconductor) chip, such as a chip developed through aregister transfer level (“RTL”) design process.

The memory 232 includes, for example, a program storage area 233 a and adata storage area 233 b. The program storage area 233 a and the datastorage area 233 b can include combinations of different types ofmemory, such as read-only memory (“ROM”), random access memory (“RAM”)(e.g., dynamic RAM [“DRAM”], synchronous DRAM [“SDRAM”], etc.),electrically erasable programmable read-only memory (“EEPROM”), flashmemory, a hard disk, an SD card, or other suitable magnetic, optical,physical, or electronic memory devices. The electronic processor 230 isconnected to the memory 232 and executes software instructions that arecapable of being stored in a RAM of the memory 232 (e.g., duringexecution), a ROM of the memory 232 (e.g., on a generally permanentbasis), or another non-transitory computer readable medium such asanother memory or a disc. Software included in the implementation of thepower tool 104 can be stored in the memory 232 of the controller 226.The software includes, for example, firmware, one or more applications,program data, filters, rules, one or more program modules, and otherexecutable instructions. The controller 226 is configured to retrievefrom memory 232 and execute, among other things, instructions related tothe control processes and methods described herein. The controller 226is also configured to store power tool information on the memory 232including operational data, information identifying the type of tool, aunique identifier for the particular tool, and other informationrelevant to operating or maintaining the power tool 104. The tool usageinformation, such as current levels, motor speed, motor acceleration,motor direction, number of impacts, may be captured or inferred fromdata output by the sensors 218. Such power tool information may then beaccessed by a user with the external device 108. In other constructions,the controller 226 includes additional, fewer, or different components.

The wireless communication controller 250 is coupled to the controller226. In the illustrated embodiment, the wireless communicationcontroller 250 is located near the foot of the power tool 104 (see FIG.2) to save space and ensure that the magnetic activity of the motor 214does not affect the wireless communication between the power tool 104and the external device 108. As a particular example, in someembodiments, the wireless communication controller 250 is positionedunder the mode pad 208.

As shown in FIG. 3B, the wireless communication controller 250 includesa radio transceiver and antenna 254, a memory 256, a processor 258, anda real-time clock 260. The radio transceiver and antenna 254 operatetogether to send and receive wireless messages to and from the externaldevice 108 and the processor 258. The memory 256 can store instructionsto be implemented by the processor 258 and/or may store data related tocommunications between the power tool 104 and the external device 108 orthe like. The processor 258 for the wireless communication controller250 controls wireless communications between the power tool 104 and theexternal device 108. For example, the processor 258 associated with thewireless communication controller 250 buffers incoming and/or outgoingdata, communicates with the controller 226, and determines thecommunication protocol and/or settings to use in wirelesscommunications.

In the illustrated embodiment, the wireless communication controller 250is a Bluetooth® controller. The Bluetooth® controller communicates withthe external device 108 employing the Bluetooth® protocol. Therefore, inthe illustrated embodiment, the external device 108 and the power tool104 are within a communication range (i.e., in proximity) of each otherwhile they exchange data. In other embodiments, the wirelesscommunication controller 250 communicates using other protocols (e.g.,Wi-Fi, cellular protocols, a proprietary protocol, etc.) over adifferent type of wireless network. For example, the wirelesscommunication controller 250 may be configured to communicate via Wi-Fithrough a wide area network such as the Internet or a local areanetwork, or to communicate through a piconet (e.g., using infrared orNFC communications). The communication via the wireless communicationcontroller 250 may be encrypted to protect the data exchanged betweenthe power tool 104 and the external device/network 108 from thirdparties.

The wireless communication controller 250 is configured to receive datafrom the power tool controller 226 and relay the information to theexternal device 108 via the transceiver and antenna 254. In a similarmanner, the wireless communication controller 250 is configured toreceive information (e.g., configuration and programming information)from the external device 108 via the transceiver and antenna 254 andrelay the information to the power tool controller 226.

The RTC 260 increments and keeps time independently of the other powertool components. The RTC 260 receives power from the battery pack 215when the battery pack 215 is connected to the power tool 104 andreceives power from the back-up power source 252 when the battery pack215 is not connected to the power tool 104. Having the RTC 260 as anindependently powered clock enables time stamping of operational data(stored in memory 232 for later export) and a security feature whereby alockout time is set by a user and the tool is locked-out when the timeof the RTC 260 exceeds the set lockout time.

The processor 258 for the wireless communication controller 250 switchesbetween operating in a connectable (e.g., full power) state andoperating in an advertisement state. In the illustrated embodiment, thewireless communication controller 250 switches between operating in theconnectable state and the advertisement state based on whether thebattery pack 215 is connected to the power tool 104 and whether thebattery pack 215 holds sufficient power to operate the wirelesscommunication controller 250 in the connectable state. When the batterypack 215 is connected to the power tool 104 and holds sufficient charge(i.e., the voltage of the battery pack 215 is above a threshold), thewireless communication controller 250 is powered by the battery pack 215and operates in the connectable state. When the battery pack 215 is notconnected to the power tool 104, the wireless communication controller250 receives power from the back-up power source 252 and the power tool104 operates in the advertisement state.

When the wireless communication controller 250 operates in theadvertisement state, the power tool 104 identifies itself to theexternal device 108, but data exchange between the power tool 104 andthe external device 108 is limited to select information. In otherwords, in the advertisement state, the wireless communication controller250 outputs an advertisement message to the external device 108. Theadvertisement message includes identification information regarding thetool identity, remaining capacity of the back-up power source 252(determined, for example, with voltage sensor 261), and other limitedamount of power tool information. The advertisement message alsoidentifies the product as being from a particular manufacturer or brandvia a unique binary identification UBID. The unique binaryidentification UBID identifies the type of power tool and also providesa unique identifier for the particular power tool (e.g., a serialnumber), as discussed in more detail below. Therefore, even whenoperating in the advertisement state, the external device 108 canidentify the power tool 104 and determine that the power tool 104 iswithin a communication range of the external device 108 (e.g., locatethe power tool), but further data between the external device 108 andthe power tool 104 is not exchanged.

When the wireless communication controller 250 operates in theconnectable state, full wireless communication between the power tool104 and the external device 108 is enabled. From the connectable state,the wireless communication controller 250 can establish a communicationlink (e.g., pair) with the external device 108 to obtain and export toolusage data, maintenance data, mode information, drive deviceinformation, and the like from the power tool 104 (e.g., the power toolcontroller 226). The exported information can be used by tool users orowners to log data related to a particular power tool 104 or to specificjob activities. The exported and logged data can indicate when work wasaccomplished and that work was accomplished to specification. The loggeddata can also provide a chronological record of work that was performed,track duration of tool usage, and the like. While paired with theexternal device 108, the wireless communication controller 250 alsoimports (i.e., receives) information from the external device 108 intothe power tool 104 such as, for example, configuration data, operationthresholds, maintenance thresholds, mode configurations, programming forthe power tool 104, and the like.

In both the advertisement mode and the connectable mode, the power toolperiodically broadcasts an identification signal. The identificationsignal includes the unique binary identifier (UBID) for the power tool104, allowing the external device 108 to identify the type of tool andthe particular instance of that tool. As is discussed below, because ofthe efficient and reduced size of the UBID code, these periodicbroadcasts of the identification signal consume only a small amount ofpower thereby extending the life of the back-up power source 252 (e.g.,when the power tool 104 is in the advertisement state) and of thebattery pack 215 (e.g., when the power tool 104 is in the connectablestate). In some embodiments, the identification signal may also includean indication of whether the power tool 104 is in the advertisementstate or in the connectable state, as well as other properties and/orconditions of the power tool 104. In some embodiments, theidentification signal may be significantly more reduced in size (e.g.,by including less information) when the power tool 104 is in theadvertisement state than when the power tool 104 is in the connectablestate. Additionally or alternatively, the wireless communicationcontroller 250, instead of periodically broadcasting the identificationsignal, may be configured to respond to a ping signal from the externaldevice 108.

The memory 232 stores various identifying information of the power tool104 including the unique binary identifier (UBID), an ASCII serialnumber, an ASCII nickname, and a decimal catalog number. The UBID bothuniquely identifies the type of tool and provides a unique serial numberfor each power tool 104. The UBID is five bytes total, with two bytesdedicated to the type of tool and three bytes dedicated to the serialnumber of the tool. For instance, the first two bytes may identify thetype of tool as hammer drill model number 1234, impact driver modelnumber 2345, or circular saw model number 3456. The next three bytesstore the unique serial number for each specific tool. The ASCII serialnumber is a thirteen ASCII character code that uniquely identifies thetool 104. In some embodiments, the ASCII serial number is both stored inthe memory 232 and written (e.g. physically etched or printed) on anameplate located on the power tool 104. The catalog number is a decimalcode with, for example, six digits. The ASCII nickname may be limited toa certain number of characters, such as twenty ASCII characters. TheUBID, serial number, and catalog number are set and stored in the memory232 at the manufacturer and are intended to be permanent. At the time ofmanufacture, a default nickname may also be provided to each power tool104 (e.g., “impact driver”). However, the ASCII nickname may beover-written by a user via the external device 108. TABLE I lists a fewtypes of identifiers with examples. Each of these identifiers is alsostored on the server 112 and associated with one another. For instance,the UBID may serve as an index to a database that includes (andassociates the UBID with) the other three identifiers.

TABLE I Identifier Data Type Example UBID Binary (example expressed in0x02, 05, A5, F2, 01 hexadecimal) ASCII Serial ASCII 229B401331590Number Catalog Number Decimal 9070-20 ASCII Nickname ASCII Joe's 3rdDrill

The five-byte UBID is significantly smaller than the thirteen-byte ASCIIserial number, but both uniquely identifies the type of tool and eachparticular tool. The power tool 104 generally uses the UBID to identifyitself to the external device 108 via the wireless communicationcontroller 250. Since the UBID has fewer bytes, the amount of dataneeded to be transmitted for each broadcast of the identifier is reducedrelative to transmitting the longer ASCII serial number. With less databeing transmitted, the wireless communication controller 250 uses lesspower.

Additional or alternative techniques for uniquely identifying the powertool 104 are used in some embodiments. For instance, in addition to orinstead of the above-noted identifiers, the memory 232 stores anInternet Protocol (IP) address, a media access control (MAC) address,and/or subscriber identity module (SIM) address to uniquely identify thepower tool 104. Each of these identifiers (including those from TABLE I)may be stored on both the power tool 104 and the server 112 and areassociated with one another. Thus, the power tool 104 can be named andidentified in multiple ways that are globally unique, and crossreferenced with other identifiers that are personally unique ormeaningful for users. In some embodiments, a radio frequencyidentification (RFID) tag is incorporated in or on the power tool 104 inaddition to the wireless communication controller 250. The RFID tagincludes one or more of the noted identifiers of the power tool 104, andthe external device 108 is operable to scan and read the identifier(s)from a memory of the RFID tag to identify the associated power tool 104.

FIG. 4 illustrates a more detailed view of the mode pad 208. The modepad 208 is a user interface on the foot of the tool 104 that allows thepower tool 104 to switch between different operating modes. The mode pad208 includes the mode selection switch 290 and mode indicator LEDs block292 having mode indicators 294 a-e, each mode indicator 294 a-eincluding one of LEDs 296 a-e (see FIG. 3A) and an associated one ofindicating symbols 298 a-e (e.g., “1”, “2”, “3”, “4”, and a radio wavesymbol). When an LED 296 is enabled, the associated indicating symbol298 is illuminated. For instance, when LED 296 a is enabled, the “1”(indicating symbol 298 a) is illuminated.

The power tool 104 has five selectable modes (one, two, three, four, andadaptive), each associated with a different one of the mode indicators294 a-e. The mode selection switch 290 is a pushbutton that cyclesthrough the five selectable modes upon each press (e.g., mode 1, 2, 3,4, adaptive, 1, 2, and so on). The adaptive mode is represented by theindicating symbol 298 e (the radio wave symbol). In the adaptive mode,the user is able to configure the power tool 104 via the external device108, as is described in further detail below. In other embodiments, thepower tool 104 has more or fewer modes, and the mode selection switch290 may be a different type of switch such as, for example, a slideswitch, a rotary switch, or the like.

With reference to FIG. 5, modes one, two, three, and four are eachassociated with a mode profile configuration data block (a “modeprofile”) 300 a-d, respectively, saved in the memory 232 in a (mode)profile bank 302. Each mode profile 300 includes configuration data thatdefines the operation of the tool 104 when activated by the user (e.g.,upon depressing the trigger 212). For instance, a particular modeprofile 300 may specify the motor speed, when to stop the motor, theduration and intensity of the work light 217, among other operationalcharacteristics. The adaptive mode is associated with a temporary modeprofile 300 e saved in the memory 232. Also stored in the memory 232 istool operational data 304, which includes, for example, informationregarding the usage of the power tool 104 (e.g., obtained via thesensors 218), information regarding the maintenance of the power tool104, power tool trigger event information (e.g., whether and when thetrigger is depressed and the amount of depression).

The external device 108 includes a memory 310 storing core applicationsoftware 312, tool mode profiles 314, temporary configuration data 316,tool interfaces 318, tool data 320 including received tool identifiers322 and received tool usage data 324 (e.g., tool operational data). Theexternal device 108 further includes an electronic processor 330, atouch screen display 332, and an external wireless communicationcontroller 334. The electronic processor 330 and memory 310 may be partof a controller having similar components as the power tool controller226. The touch screen display 332 allows the external device 108 tooutput visual data to a user and receive user inputs. Although notillustrated, the external device 108 may include further user inputdevices (e.g., buttons, dials, toggle switches, and a microphone forvoice control) and further user outputs (e.g., speakers and tactilefeedback elements). Additionally, in some instances, the external device108 has a display without touch screen input capability and receivesuser input via other input devices, such as buttons, dials, and toggleswitches. The external device 108 communicates wirelessly with thewireless communication controller 250 via the external wirelesscommunication controller 334, e.g., using a Bluetooth® or Wi-Fi®protocol. The external wireless communication controller 334 furthercommunicates with the server 112 over the network 114. The externalwireless communication controller 334 includes at least one transceiverto enable wireless communications between the external device 108 andthe wireless communication controller 250 of the power tool 104 or theserver 112 through the network 114. In some instances, the externalwireless communication controller 334 includes two separate wirelesscommunication controllers, one for communicating with the wirelesscommunication controller 250 (e.g., using Bluetooth® or Wi-Fi®communications) and one for communicating through the network 114 (e.g.,using Wi-Fi or cellular communications).

The server 112 includes a processor 340 that communicates with theexternal device 108 over the network 114 using a network interface 342.The communication link between the network interface 342, the network114, and the external wireless communication controller 334 may includevarious wired and wireless communication pathways, various networkcomponents, and various communication protocols. The server 112 furtherincludes a memory 344 including a tool profile bank 346 and tool data348.

Returning to the external device 108, the core application software 312is executed by the electronic processor 330 to generate a graphical userinterface (GUI) on the touch screen display 332 enabling the user tointeract with the power tool 104 and server 112. In some embodiments, auser may access a repository of software applications (e.g., an “appstore” or “app marketplace”) using the external device 108 to locate anddownload the core application software 312, which may be referred to asan “app.” In some embodiments, the tool mode profiles 314, toolinterfaces 318, or both may be bundled with the core applicationsoftware 312 such that, for instance, downloading the “app” includesdownloading the core application software 312, tool mode profiles 314,and tool interfaces 318. In some embodiments, the app is obtained usingother techniques, such as downloading from a website using a web browseron the external device 108. As will become apparent from the descriptionbelow, at least in some embodiments, the app on the external device 108provides a user with a single entry point for controlling, accessing,and/or interacting with a multitude of different types of tools. Thisapproach contrasts with, for instance, having a unique app for each typeof tool or for small groupings of related types of tools.

FIG. 6 illustrates a nearby devices screen 350 of the GUI on the touchscreen display 332. The nearby devices screen 350 is used to identifyand communicatively pair with power tools 104 within wirelesscommunication range of the external device 108 (e.g., local powertools). For instance, in response to a user selecting the “scan” input352, the external wireless communication controller 334 scans a radiowave communication spectrum used by the power tools 104 and identifiesany power tools 104 within range that are advertising (e.g.,broadcasting their UBID and other limited information). The identifiedpower tools 104 that are advertising are then listed on the nearbydevices screen 350. As shown in FIG. 6, in response to a scan, threepower tools 104 that are advertising (advertising tools 354 a-c) arelisted in the identified tool list 356. In some embodiments, if a powertool 104 is already communicatively paired with a different externaldevice, the power tool 104 is not advertising and, as such, is notlisted in the identified tool list 356 even though the power tool 104may be nearby (within wireless communication range of) the externaldevice 108.

The advertising tools 354 may be in either an advertising state or aconnectable state, depending on whether a charged power tool batterypack 215 is coupled to the respective tool. More particularly, when acharged power tool battery pack 215 is coupled to a power tool 104, thepower tool 104 is in the connectable state and has essentially fullcommunication capabilities. In contrast, when no battery pack or adischarged battery pack 215 is coupled to the power tool 104, the powertool 104 is in the advertising state and is generally limited tobroadcasting an advertisement message that includes its UBID, anindication that a charged power tool battery pack 215 is not present,and the state of charge of the back-up power source 252. In someembodiments, further information is provided by the power tool 104 tothe external device 108 in the advertising state, although thisadditional data transmission may increase power usage and reduce thelife of the back-up power source 252.

The external device 108 provides a visual state indication 358 in theidentified tool list 356 of whether an advertising tool 354 is in theconnectable state or the advertising state. For instance, theadvertising tool 354 a and 354 b are in the connectable state, while theadvertising tool 354 c is in the advertising state. The external device108 is operable to pair with advertising tools 354 that are in theconnectable state, but not those advertising tools 354 that are in theadvertising state. When one of the advertising tools 354 in theconnectable state is paired with the external device 108, the tool is inthe connected state.

The UBID received from the advertising tools 354 is used by the externaldevice 108 to identify the tool type of each advertising tool 354. Theexternal device 108 converts the first two bytes of the UBID to decimaland displays on the identified tool list 356 the tool type by listingthe catalog number (e.g., “2757-20” and “7206-20”). In some instances, atable of tool types is included in the external device 108 indexable bythe UBID (e.g., the first two bytes), allowing the external device 108to display the tool type in another form or language (e.g., “impactdriver” or “circular saw”).

Additionally, UBIDs received from advertising tools 354 in response to ascan are used to obtain further information about the tool, ifavailable. For instance, the UBID is sent to the server 112 and used asan index or search term for a database of tool information that is partof the tool data 348. For instance, the database may store and respondto the external device 108 with the ASCII nickname, other toolidentifiers of Table I, and an icon. The external device 108, in turn,displays the ASCII nickname, ASCII serial number, and icon. As shown inthe nearby devices screen 350, the advertising tool 354 a and 354 binclude the ASCII nickname, serial number 359, and icon. In someinstances, the advertising tools 354 provide the further toolidentifiers listed in Table I to the external device 108, rather thanthe external device 108 obtaining the information from the server 112.In some instances, the external device 108 includes a cache of toolinformation stored in tool data 320 for power tools 104 previouslypaired with by the external device, and which is indexable by the UBID.The cached tool information may include the icon and other identifierslisted in Table I. In some instances, the advertising tool 354 c doesnot include an ASCII nickname and serial number in the identified toollist 356 because the advertising tool 354 c is in an advertising stateand (a) the additional identifiers are not transmitted to the externaldevice 108 while in the advertising state and (b) the external device108 has not yet obtained the additional identifiers from the server 112or the additional identifiers are not available on the server 112.

From the nearby devices screen 350, a user can select one of theadvertising tools 354 from the identified tool list 356 tocommunicatively pair with the selected advertising tool 354. Each typeof power tool 104 with which the external device 108 can communicateincludes an associated tool graphical user interface (tool interface)stored in the tool interfaces 318. Once a communicative pairing occurs,the core application software 312 accesses the tool interfaces 318(e.g., using the UBID) to obtain the applicable tool interface for thetype of tool that is paired. The touch screen 332 then shows theapplicable tool interface. A tool interface includes a series of screensenabling a user to obtain tool operational data, configure the tool, orboth. While some screens and options of a tool interface are common tomultiple tool interfaces of different tool types, generally, each toolinterface includes screens and options particular to the associated typeof tool. The power tool 104 has limited space for user input buttons,triggers, switches, and dials. However, the external device 108 andtouch screen 332 provide a user the ability to map additionalfunctionality and configurations to the power tool 104 to change theoperation of the tool 104. Thus, in effect, the external device 108provides an extended user interface for the power tool 104, providingfurther customization and configuration of the power tool 104 thanotherwise possible or desirable through physical user interfacecomponents on the tool. Examples further explaining aspects and benefitsof the extended user interface are found below.

FIG. 7 illustrates a home screen 370 of the tool interface when thepower tool 104 is an impact driver. The home screen 370 includes an icon371 for the particular paired powered tool 104, which may be the same asthe icon shown in the list 356. The home screen 370 also includes adisconnect input 372 enabling the user to break the communicativepairing between the external device 108 and the paired power tool 104.The home screen 370 further includes four selectable options: toolcontrols 374, manage profiles 376, identify tool 378, and factory reset379. Selecting identify tool 378 sends a command to the paired powertool 104 requesting that the paired power tool 104 provide auser-perceptible indication, such as flashing a work light 217, a lightof the indicator 220, flashing LEDs 296, making an audible beep using aspeaker of the indicators 220, and/or using the motor 214 to vibrate thetool. The user can then identify the particular tool communicating withthe external device 108.

Selecting tool controls 374 causes a control screen of the toolinterface to be shown, such as the control screen 380 of FIGS. 8A-B,which includes a top portion 380 a and a bottom portion 380 b.Generally, the control screen shown depends on the particular type ofmode profile. In other words, generally, each type of mode profile has aspecific control screen. Each control screen has certain customizableparameters that, taken together, form a mode profile. The particularcontrol screen shown on the external device 108 upon selecting the toolcontrols 374 is the currently selected profile of the power tool 104(e.g., one of the mode profiles 300 a-e). To this end, upon selection ofthe tool controls 374, the external device 108 requests and receives thecurrently selected one of the mode profiles 300 a-e from the power tool104. The external device 108 recognizes the mode profile type of theselected one of the mode profiles 300 a-e, generates the appropriatecontrol screen for the mode profile type, and populates the variousparameter settings according to settings from the received mode profile300.

When in the adaptive mode, the currently selected profile that is shownon the control screen is the temporary mode profile 300 e. Additionally,when the power tool 104 is in the adaptive mode, the power tool 104 isoperated according to the temporary mode profile 300 e. The source ofprofile data in the temporarily mode profile 300 e (and what is beingdisplayed on the control screen 380) varies. Initially, upon enteringthe adaptive mode via the (pushbutton) mode selection switch 290, themode profile 300 a (associated with mode 1) is copied into the temporarymode profile 300 e of the power tool 104. Thus, after a user causes thepower tool 104 to enter the adaptive mode using the pushbutton 290, thepower tool 104 initially operates upon a trigger pull as if mode 1 (modeprofile 300 a) was currently selected. Additionally, as the controlscreen displays the mode profile saved as the temporarily mode profile300 e, the mode profile 300 a that was just copied to the temporary modeprofile 300 e is shown on the control screen.

In some embodiments, another mode profile 300 (e.g., 300 b-d) is copiedinto the temporary mode profile 300 e upon first entering the adaptivemode and is provided (as the temporary mode profile 300 e) to theexternal device 108 for populating the control screen 380. In stillother embodiments, the control screen 380 shown upon selecting the toolcontrols 374 is a default control screen with default profile data forthe particular type of tool, and the external device 108 does not firstobtain profile data from the power tool 104. In these instances, thedefault mode profile is sent to the power tool 104 and saved as thetemporary mode profile 300 e.

Further, assuming that the power tool 104 is in the adaptive mode, afterthe external device 108 initially loads the control screen (e.g.,control screen 380) upon selecting the tool controls 374, the user mayselect a new source of profile data for the temporary file. Forinstance, upon selecting one of the mode profile buttons 400 (e.g., mode1, mode 2, mode 3, or mode 4) the associated mode profile 300 a-d issaved as the temporary mode profile 300 e and sent to the externaldevice 108 and populates the control screen (according to the modeprofile type and mode profile parameters). Additionally, assuming thepower tool 104 is in the adaptive mode, a user may select a mode profiletype using the setup selector 401. Upon selecting the setup selector401, a list of available profiles (profile list) 402 for the particulartype of paired power tool 104 is shown (see, e.g., FIG. 9). The profilelist 402 includes profiles 404 obtained from tool profiles 314 and/orfrom the tool profile bank 346 over the network 114. These listedprofiles 404 include default profiles (custom drive control profile 404a and self-tapping screw profile 404 b) and custom profiles previouslygenerated and saved by a user (e.g., drywall screws profile 404 c anddeck mode 404 d), as is described in more detail below. Upon selectingone of the tool profiles 404, the selected profile 404 and its defaultparameters are illustrated on the control screen 380 of the externaldevice 108 and the profile 404 as currently configured is sent to thepower tool 104 and saved as the temporary mode profile 300 e.Accordingly, upon a further trigger pull, the power tool 104 willoperate according to the selected one of the tool profiles 404.

When the adaptive mode is currently selected on the power tool 104, asindicated by the indicating symbol 298 e (FIG. 4), the user is able toconfigure (e.g., change some of the parameters of the temporary modeprofile 300 e) the power tool 104 using the control screen 380. When thepower tool 104 is in one of the other four tool modes, as indicated byone of the indicating symbols 298 a-d, the power tool 104 is notcurrently configurable via the control screen 380. For instance, in FIG.10, a control screen 381 is illustrated when the power tool is notcurrently in the adaptive mode. Here, the control screen 381 is similarto the control screen 380, but includes a message 382 indicating thatthe tool is not in the adaptive mode and a wireless symbol 384 is showngreyed-out as a further indication that the power tool is not in theadaptive mode. Accordingly, when the power tool 104 is not in theadaptive mode and a user selects one of the mode profile buttons 400,the power tool 104 provides the mode profile 300 of the associated modeselected by the user, but does not overwrite the temporary mode profile300 e with the mode profile. Thus, the mode profiles 300 of the powertool 104 are not updated when the power tool 104 is not in the adaptivemode.

Referring back to FIGS. 8A-B, when the power tool 104 is in the adaptivemode and the user selects the tool controls 374 on the home screen, theuser is able to configure profile data of the power tool 104 using acontrol screen of the tool interface. For instance, via the controlscreen 380, the user is able to configure the current profile data ofthe temporary mode profile 300 e of the power tool 104. As illustrated,the user is able to adjust the maximum speed via the speed text box 390or the speed slider 391; enable/disable the custom drive control usingthe toggle 392; alter the trigger ramp up parameter via slider 393;adjust the work light duration with slider 394 a, work light text box394 b, and “always on” toggle 394 c; and adjust the work light intensityvia the work light brightness options 396. Upon enabling the toggle 392,the torque level control elements become active and are no longergreyed-out, such that a user can adjust the torque level using theslider 397 or torque text box 398.

In some embodiments, the external device 108 and power tool 104 enablelive updating of the temporary mode profile 300 e. When live updating,the temporary mode profile 300 e of the power tool 104 is updated aschanges to the parameters are made on the control screen 380 withoutrequiring a subsequent saving step or actuation being taken by the useron the GUI of the external device 108 or on the power tool. In otherwords, when live updating, the external device 108 updates the temporarymode profile 300 e on the power tool 104 in response to receiving a userinput changing one of the parameters, rather than in response to a userinput saving the temporary mode profile 300 e. For instance, withrespect to FIG. 8A, the speed of the power tool 104 is set to 850revolutions per minute (RPM). When live updating, if a user slides thespeed slider 391 to the right by dragging his/her finger across thespeed slider 391 and then removing his/her finger from the touch screen332 of the external device 108 upon reaching a maximum speed of 1500RPM, the external device 108 will send the newly selected maximum speed(1500 RPM) to the power tool 104 to update the temporary mode profile300 e when the user's finger is removed from the screen, withoutrequiring a further depression of a button or other actuation by theuser. Live updating is applicable to the other parameters on the controlscreen 380 as well, such as the custom drive control toggle, the torquelevel, trigger ramp, and work light parameters. Live updating enablesrapid customization of the power tool 104 so that a user may test andadjust various profile parameters quickly with fewer key presses. Incontrast to live updating, in some embodiments, after sliding the speedslider 391 to 1500 RPM, the user must press a save button (e.g., savebutton 408) to effect the update of the maximum speed parameter on thetemporary mode profile 300 e.

A user is also able to save a mode profile set via a control screen(e.g., the control screen 380) to the power tool 104. More particularly,the user is able to overwrite one of the mode profiles 300 a-d in theprofile bank 302 with the mode profile as specified on a control screen.To save the mode profile generated by the user via the control screen308, the user selects the save button 408 (FIG. 10). As shown in FIG.11, pressing the save button 408 causes the core application software312 to generate a save prompt 410 requesting the user to name thecreated mode profile and specify which of the mode profiles 300 a-d tooverwrite with the created mode profile. In response to the user input,the external device 108 sends the generated mode profile to the powertool 104. The electronic processor 230 of the power tool 104 receivesthe generated mode profile and overwrites the mode profiles 300 in theprofile bank 302 specified for overwriting by the user with thegenerated mode profile. For example, in FIG. 11, the user has named thegenerated mode profile “Deck Mode” and specified that the electronicprocessor 230 overwrite mode profile 300 a (associated with mode “1”)with the generated “Deck Mode” mode profile. In some embodiments, theuser can elect to overwrite more than one mode profile 300 a-e with thegenerated mode profile by selecting multiple of the mode labels 414before selecting the save button 412. In some embodiments, the user canelect to not overwrite any of the mode profiles 300 a-e with thegenerated mode profile by not selecting any of the mode labels 414before selecting the save button 412. In such embodiments, the generatedmode profile is saved in the tool profile bank 346 on the server 112,but not on the power tool 104. Overwriting a profile (old profile) withanother profile (new profile) may include, for example, storing the newprofile at the location in memory that was storing the old profile,thereby erasing the old profile and replacing it in memory with the newprofile, or may include storing the new profile at another location inmemory and updating a profile pointer to point to the address in memoryhaving the new profile instead of the address in memory having the oldprofile.

In some embodiments, if a user exits the adaptive mode of the power tool104 or selects a different mode profile button 400 without first savingthe generated mode profile to the power tool 104, the mode profileshowing on the control screen 380 is lost. In other words, uponselecting one of the mode profile buttons 400 (e.g., mode 1, mode 2,mode 3, or mode 4) the associated mode profile 300 a-d is saved to thetemporary mode profile 300 e, overwriting the unsaved mode profilegenerated by the user via the control screen. In addition to saving theassociated mode profile 300 a-d to the temporary mode profile 300 e, asnoted above, the associated mode profile 300 a-d is provided to theexternal device 108 and populates the control screen (according to themode profile type and mode profile parameters).

In some embodiments, if the user attempts to exit the adaptive mode ofthe power tool 104 or selects a different mode profile button 400without first saving the generated mode profile to the power tool 104,the core application software 312 automatically generates the saveprompt 410, which requests that the user save the created mode profileor confirm that the user wishes to discard the changes to the createdmode profile. In such embodiments, a user can confirm that no saving ofthe created mode profile is desired by pressing the cancel button or bypressing a separate button (not shown) that specifies, for example,“Continue without saving.” By automatically generating the save prompt410 upon detection that the user wishes to exit the adaptive mode, thecore application software 312 prevents the user from accidentallyexiting the adaptive mode without saving the created mode profile.

In addition to sending the generated mode profile to the power tool 104in response to saving the generated mode profile via save button 412,the external device 108 sends the generated mode profile to the server112 via the network 114 for saving in the tool profile bank 346. In someinstances, the generated mode profile is also stored locally on theexternal device 108 within the tool profiles 314 upon selecting the savebutton 412. In the power tool 104, server 112, and external device 108,the profile name entered by the user on save prompt 410 is saved withthe generated mode profile. In some embodiments, rather than the actualprofile name, a unique hash of the profile name is saved with thegenerated mode profile.

The profiles in the tool profile bank 346 of the server 112 may be savedaccording to a user identifier. For instance, a user may enter a useridentifier (bob_smith) and password via the touch screen 332 wheninitially accessing the GUI of the core application software 312. Theexternal device 108 may provide the user identifier to the server 112along with sending the generated mode profile for saving in the toolprofile bank 346. Accordingly, the mode profiles generated and saved bya user are associated with the user in the tool profile bank 346. Forinstance, each saved mode profile may have data including a name (e.g.,“Deck Mode”), a mode profile type (e.g., custom drive control—impact orself-tapping screw), a list of tools to which the mode profile applies(e.g., impact driver and impact wrench), a creation date (e.g., Apr. 11,2015), a revision date (e.g., May 11, 2015), and an associated user(e.g., bob_smith). Thus, when a user selects the setup selector 401(FIG. 8A), the external device 108 provides the user name (e.g.,bob_smith) and the tool type (e.g., impact driver) to the server 112,which obtains the mode profiles in the tool profile bank 346 associatedwith the provided user name and tool type, and provides these modeprofiles back to the external device 108 for display on the mode profilelist 402. Accordingly, only those mode profiles that are compatible witha particular paired power tool 104 are shown on the mode profile list402.

Referring back to FIG. 9, the drywall screws (custom) profile 404 c,deck mode (custom) profile 404 d, and custom drive control profile 404 aare the same mode profile type, but are unique instances of the modeprofile type (e.g., because some of the values associated with theparameters of profile type have different values). The self-tappingscrew profile 404 b is a different mode profile type than the modeprofiles 404 a, 404 c, and 404 d. Profile types and components of a modeprofile are discussed in more detail below.

By saving the generated mode profiles to the server 112 and associatingthem with a user, with the external device 108, a user can save agenerated mode profile for a first power tool 104 and later access thesaved mode profile for loading onto a second power tool 104. Further, ifthe mode profile is modified while paired with the second power tool104, the system will notify the user the next time the external device108 is paired with the first power tool 104 and obtains the old versionof the mode profile.

The method 450, illustrated in FIG. 12, provides further detail on thisprocess. Various aspects of the method 450, such as obtaining anddisplaying a mode profile or saving a mode profile to a tool or server,can be carried out through user input to the GUI of the external device108 using techniques and systems described above. In step 452, theexternal device 108 pairs with tool A, an instance of the power tool104. With the external device 108, the user generates and saves to thetool a mode profile X (e.g., “Deck Mode”), and the mode profile X isalso saved on the server 112 in the tool profile bank 346 in step 454.The external device 108 later disconnects from tool A and, in step 456,pairs with tool B, which is the same type of tool as tool A (e.g., animpact driver). In step 458, the external device 108 obtains modeprofiles from the tool profile bank 346 associated with the user andappropriate for the tool type of tool B, which includes the mode profileX. In step 460, the external device 108 determines whether parametermodifications are received from the user for the mode profile X. Ifmodifications are not received, the external device 108, based on userinput, stores the mode profile X to the tool B (step 462). Ifmodifications are received, in step 464, the mode profile X is modifiedto form a modified version of mode profile X, and the modified versionof mode profile X is saved to the tool B and to the tool profile bank346. In the tool profile bank 346, the previously stored mode profile Xis overwritten with the modified version of the mode profile X, unlessthe modified version of the mode profile X is assigned a new name by theexternal device 108 based on user input (e.g., on save prompt 410).

Thereafter, the external device 108 disconnects from the tool B. In step466, the external device 108 again pairs with the tool A. In step 468,the external device 108 obtains (original) mode profile X from the toolA, e.g., using mode profile buttons 400 as described above. In step 470,upon receipt of the (original) mode profile X, the external device 108obtains a copy of the mode profile X saved in the tool profile bank 346(modified mode profile X) and compares the modified mode profile X fromthe server 112 to the original mode profile X from the tool A. Thecomparison may include, for instance, a comparison of the revision dateof the mode profiles or may include a comparison of the variousparameters set for the mode profiles. In step 472, if the modified modeprofile X is determined to be the same as the original mode profile X(i.e., no modifications in steps 460-464), the external device proceedsto step 474 and displays mode profile X on a control screen of theexternal device. In step 472, if the modified mode profile X isdetermined to be different than the original mode profile X, theexternal device 108 proceeds to step 476 and prompts the user toindicate the discrepancy (e.g., on the touch screen 332). In otherwords, the external device 108, at step 476, generates an indication tothe user that the original mode profile X and the modified mode profileX are not identical. The prompt (or indication) asks whether the userwishes to overwrite the original mode profile X on the tool A with themodified mode profile X from the server 112. In response to a userselection, the external device 108 will either overwrite the originalmode profile X on the tool A with the modified mode profile X, willprompt the user to provide the original mode profile X with a new name,or the external device 108 will essentially ignore the discrepancy andallow the original mode profile X profile to be displayed on a controlscreen of tool interface 318 of the external device 108 (for potentialmodification by the user).

Although this method 450 is described as using the same external device108, a user can use different external devices 108 when pairing withtool A and tool B, particularly because the mode profiles are saved in atool profile bank 346, which is separate from the external devices 108.

FIG. 13 illustrates an exemplary flow chart 500 of the method of alocking out mode configuration implemented by the power tool 104 (e.g.,by firmware executing on the controller 226). The locking out modeconfiguration is implemented to prevent the external device 108 fromoverwriting data on the power tool 104 when the power tool 104 is not inthe adaptive mode or when the power tool 104 is in operation. First, instep 501, a user attempts to overwrite data of the mode profiles 300through the external device 108. The power tool 104 then determineswhether the power tool 104 is configured to enable overwriting of data(step 502). In other words, the power tool 104 determines whether thepower tool 104 is in the adaptive mode. As noted above, in someembodiments, the external device 108 cannot overwrite data of the modeprofiles 300 unless the power tool 104 is in the adaptive mode (see FIG.10). Therefore, when the power tool 104 (e.g., the electronic processor230) determines that the power tool 104 is not in the adaptive mode, theelectronic processor 230 (e.g., a hardware or firmware based interlock)prevents changes made to the power tool configuration and/or the modeprofiles 300 (step 503). This aspect prevents a potentially maliciousindividual, separate from the user currently operating the power tool104, from adjusting tool parameters of the power tool 104 unless theuser places the power tool 104 in the adaptive mode. Thus, a user of thepower tool 104 can prevent others from adjusting parameters by operatingthe power tool 104 in one of the other four modes. When the power tool104 is in the adaptive mode, the power tool 104 (e.g., the electronicprocessor 230) proceeds to determine whether the power tool 104 iscurrently in use or operating (step 504). When the power tool 104 is inoperation, the hardware or firmware based interlock (implemented, forexample, by the electronic processor 230) prevents the electronicprocessor 230 from writing to the profile bank 302 (step 503). Theelectronic processor 230 may detect that the power tool 104 is inoperation based on depression of the trigger 212 or outputs from Hallsensors indicating motor spinning. When the power tool 104 is not inoperation, and is in the adaptive mode, the electronic processor 230(e.g., the hardware or firmware based interlock) allows data on thepower tool 104 to be overwritten by data from the external device 108(step 505). Thus, even when the power tool 104 is in the adaptive mode,if the power tool 104 is currently operating, the electronic processor230 will not update or write to the profile bank 302.

In some embodiments, the electronic processor 230 outputs to theexternal device 108, via the wireless communication controller 250, asignal indicative of whether the power tool 104 is currently operating.In turn, the external device 108 provides an indication to the user,such as through the wireless symbol 384 changing color (e.g., to red) orflashing and a message when the power tool 104 is currently operating.Moreover, the ability to update parameters via a control screen isprevented, similar to the control screen 381 of FIG. 1, when theexternal device 108 receives an indication that the power tool 104 iscurrently operating.

Further, the external device 108 cannot overwrite data of the modeprofiles 300 unless the controller 226 is awake and not in a low-power(sleep) mode. The power tool 104 includes a wakeup circuit and logic 510as illustrated in FIG. 14, which allows four wakeup sources to awakenthe controller 226: insertion/attachment of a main power source, such asthe charged battery pack 215; depression of trigger 212; pairing of thepower tool 104 with the external device 108; and a wakeup pulse from anattached battery pack 215, which is, for instance, generated by softwareexecuting on a controller of the battery pack 215 for various reasons(e.g., low charge). After a period of inactivity of the power tool 104,e.g., 60 seconds where none of the four awakening actions listed aboveoccur, the controller 226 goes to a low-power (sleep) mode.

As shown in FIG. 14, the four sources of awakening signals originatefrom, for example, the trigger switch 213, the battery pack 215, and thewireless communication controller 250. The controller 226 has two wakeuppins 512 and 514. More particularly, attachment of a battery pack 215results in a signal from the power input unit 224 being received by thewakeup pin 512. Wakeup pin 514 receives a wakeup signal from one ofthree sources: the trigger switch 213 (in response to depressing thetrigger 212); the wireless communication controller 250 (in response topairing with the external device 108); and a data output of the batterypack 215.

Returning to FIG. 7, selecting the factory reset 379 on the home screen370 causes the external device 108 to obtain default mode profiles fromthe tool profiles 314 or from the tool profile bank 346 on the server112, and provide the default profiles to the power tool 104, which thenoverwrites the profile bank 302 with the default mode profiles.

The home screen 370 may be similar in look and feel for all, many, orseveral of the tool interfaces 318, although the icon 371 may becustomized for the specific tool interface based on the specific powertool with which the external device 108 is paired. Further, the optionslisted below the icon may add an “obtain data” option that enables theuser to select and obtain operational data from the tool for display onthe external device 108 and/or sending to the server 112 for storage aspart of the tool data 348. Additionally, in instances where a particulartool is not intended to be configured by the external device 108, thetool controls 374 and manage profiles 376 options may be not included onthe home screen 370.

In some embodiments, an adaptive mode switch separate from the modeselection switch 290 is provided on the power tool 104. For instance,LED 296 e (FIG. 3A) may be a combined LED-pushbutton switch whereby,upon first pressing the combined LED-pushbutton switch, the power tool104 enters the adaptive mode and, upon a second pressing of the switch,the power tool 104 returns to the mode that it was in before firstpressing (e.g., mode 1). In this case, the pushbutton 290 may cyclethrough modes 1-4, but not the adaptive mode. Furthermore, certaincombinations of trigger pulls and/or placement of the forward/reverseselector 219 into a particular position (e.g., neutral) may cause thepower tool 104 to enter and exit the adaptive mode.

Returning to the concept of mode profiles (e.g., profiles 300), a modeprofile 300 includes one or more features, and each of the one or morefeatures includes one or more parameters. For instance, returning toFIGS. 8A-B, the mode profile illustrated is the custom drive controlprofile, which has the following features: trigger speed control mapsettings (see max speed (RPM)), impact detection with shutdown (disabledin FIG. 8A via toggle 392), soft start settings (see trigger ramp up),and work light settings (see work light duration and brightness). Eachof these features includes parameters. For instance, the trigger speedcontrol map settings feature includes a parameter set to 850 RPM.

The particular features available for customization on a control screenof the external device 108 varies based on mode profile type. Forinstance, the custom drive control profile of FIGS. 8A-B have the fourfeatures noted above, while a self-tapping screw profile, as illustratedin FIGS. 15A-B includes a different list of features on its controlscreen 550 including: self-drilling screw; soft start; and work light.

Additionally, different tool types have different available featuresbased on, for example, the primary function of the power tool. Forexample, in Table II below, example features for an impact driver and ahammer drill/driver are listed.

TABLE II Example Features Example Features Available for ExampleFeatures Available for Impact Driver Hammer Drill/Driver Self-DrillingScrew Self-Drilling Screw Work Light Work Light Soft Start Soft StartTrigger Speed Control Map Trigger Speed Control Map Constant Speed(Closed-Loop Control) Constant Speed (Closed-Loop Control) VariableSpeed (Closed-Loop Control) Variable Speed (Closed-Loop Control) PulsingSpeed (Closed-Loop Control) Pulsing Speed (Closed-Loop Control) ImpactDetection with Shutdown Constant Pulsing Impact Detection with SpeedChange Electronic Clutch Map No Impact

The features for a particular mode profile are selected such that thefeatures are compatible and do not conflict with one another. The toolprofiles 314 on the external device 108 include (a) default modeprofiles for each tool type that have particular groupings of featuresthat are compatible and (b) at least one sandbox profile that presentsall or several features available for a particular tool, includingfeatures that are incompatible with one another. Examples of two typesof default profiles include the custom drive control profile (FIGS.8A-B) and the self-tapping screw profile (FIGS. 15A-B), as each of thesemode profile types lists a subset of the total available features forthe power tool 104, and the listed features are compatible.

In contrast, a sandbox profile for the impact driver may include each ofthe features available for an impact driver, e.g., as listed in Table IIabove. Here, some features listed conflict with other features listed.For example, the self-drilling screw feature is incompatible with the noimpact feature, the impact detection with shutdown feature, and theimpact detection with speed change feature. The self-drilling screwfeature, in part, includes (a) driving a fastener until tool currentexceeds a specified value, then changing the maximum tool speed to alower speed, (b) driving until the tool detects an impact (of the hammerto the anvil), then changing the maximum speed to an even lower speeduntil the trigger 212 is released. The no impact feature includescontrolling the power tool 104 to drive its output unit withoutgenerating impacts, which conflicts with the self-drilling screw featurethat relies on impacts occurring in the control algorithm. Additionally,the impact detection with shutdown and the impact detection with speedchange features alter the operation of the power tool 104 upon a certainnumber of impacts being detected. However, each of these featurescontrols the tool 104 differently upon impacts occurring than theself-drilling screw feature. Accordingly, these features areincompatible.

When the sandbox profile is selected and its associated control screenis displayed, the external device 108 prevents a user from selectingconflicting features. For instance, each available feature in thesandbox profile may be listed on a scrollable control screen, similar tohow the features of the custom drive control profile in FIGS. 8A-B, butwith additional features listed. Each feature may have an enable/disabletoggle switch (not shown), similar to the custom drive control toggle392. When a user enables a toggle switch for a particular feature, theother features available in the sandbox profile that are incompatiblewith the enabled feature are greyed-out to prevent user manipulation viathe GUI and, if previously enabled, disabled (e.g., the associatedtoggle switch is placed in the disable position). Accordingly, while thesandbox profile makes available features that would be incompatible ifenabled together, the control screen for the sandbox profile prevents auser from generating a mode profile having conflicting (e.g.,incompatible) features.

Table III below lists fifteen exemplary features, providing a featureidentifier, a feature name, a list of applicable tools with which thefeature may be used, and a list of incompatible features that conflictwith the particular feature. For instance, the constant speed featurehas a feature identifier “2,” has a feature name “constant speed,” workson impact drivers, impact wrenches, standard drill/drivers, and hammerdrills/drivers. Further, the constant speed feature is incompatible withthe features having feature IDs 1, 3, 5, 7, 9, 10, 11, 12, 13, 14, and15 (i.e., the impact self-drilling screw feature, the variable boundedspeed feature, the speed pulse feature, and so on). The constant speedfeature, however, is compatible with features having feature IDs 4, 6,and 8 (i.e., the work light settings feature, impact counting withshutdown feature, and soft start settings feature). The details of thefeatures and the particular features in Table III are exemplary, and inother embodiments, more or less features may be available to more orless power tools.

TABLE III Feature ID Feature Name Applicable Tools Incompatible Features1 Impact Self-Drilling Screw Impact Driver 2, 3, 5, 7, 9, 10, 11, 12,13, 14, 15 2 Constant Speed Impact Driver 1, 3, 5, 7, 9, 10, 11, 12, 13,14, Impact Wrench 15 Hammer Drill/Driver Standard Drill/Driver 3Variable Bounded Speed Impact Driver 1, 2, 5, 10, 11, 12, 13, 15 ImpactWrench Hammer Drill/Driver Standard Drill/Driver 4 Work light SettingsImpact Driver none Impact Wrench Hammer Drill/Driver StandardDrill/Driver 5 Speed Pulse Impact Driver 1, 2, 3, 7, 9, 10, 11, 12, 13,14, Impact Wrench 15 Hammer Drill/Driver Standard Drill/Driver 6 ImpactCounting with Impact Driver 7, 9, 13, 14 Shutdown Impact Wrench 7 NoImpact Impact Driver 1, 2, 5, 6, 10, 12, 13 Impact Wrench 8 Soft StartSettings Impact Driver none Impact Wrench Hammer Drill/Driver StandardDrill/Driver 9 E-Clutch Hammer Drill/Driver 1, 2, 5, 6, 14 StandardDrill/Driver 10 Impacting Up/Down Shift Impact Driver 1, 2, 3, 5, 7, 9,11, 12, 13, 15 Impact Wrench 11 Variable Bounded PWM Impact Driver 1, 2,3, 5, 10, 12, 13, 15 Impact Wrench 12 PWM Pulse Hammer Drill/Driver 1,2, 3, 5, 7, 10, 11, 13, 15 Standard Drill/Driver 13 Drill Self-DrillingScrew Hammer Drill/Driver 1, 2, 3, 5, 7, 10, 11, 12, 15 StandardDrill/Driver 14 Clutch Collar Range Hammer Drill/Driver 1, 2, 5, 6, 9Standard Drill/Driver 15 Variable Bounded PWM Hammer Drill/Driver 1, 2,3, 5, 10, 11, 12, 13 with Two Speeds Standard Drill/Driver (Mechanical)

A mode profile, such as one of the mode profiles 300, includesconfiguration data specifying enabled features and the parametersthereof. For instance, each feature is assigned an identifying code(e.g., a two-byte binary ID). For a particular feature, a certain numberof bytes accompanies the identifying code to specify the parameters ofthat feature. For instance, the impact counting with shutdown featuremay be specified by a two-byte binary ID (e.g., 0x01) and concatenatedwith two bytes that specify the number of impacts to occur beforeshutdown (e.g., 0x0F to specify 15 impacts). The identifying code andparameter code, together, form an encoded feature. An encoded modeprofile includes a concatenation of one or more encoded features. Theencoded mode profile is saved in the profile bank 302 as one of the modeprofiles 300 a. Firmware on the controller 226 is operable to decode anencoded profile and control the power tool 104 according to the featuresand parameters specified by the encoded mode profile.

The power tool 104 further includes a compatibility check module, e.g.,in firmware stored on the memory 232 and executed by the electronicprocessor 230. At the time of receiving a new mode profile from theexternal device 108 for saving in the profile bank 302, thecompatibility check module confirms that each feature within the newmode profile is compatible with the other features in the mode profileand/or that each feature within the new mode profile is not incompatiblewith the other features in the mode profile. In some instances, thecompatibility check module confirms the compatibility of a modeprofile's features upon each trigger pull when that mode profile is thecurrently selected mode profile. To carry out the compatibility check,the firmware may include a list of compatible and/or incompatiblefeatures stored in, for instance, a table similar to Table III above,and the electronic processor 230 is operable to perform comparisons withthe table data to determine whether the features are compatible orincompatible. The compatibility check module provides an additionallayer of security to protect against a maliciously generated orcorrupted mode profile.

The control screens of the tool interfaces 318 also place bounds on thevalues that a user can enter for a particular parameter. For instance,in FIG. 8A, the maximum speed cannot be set above 2900 RPM or below 360RPM. The power tool 104 further includes a boundary check module, e.g.,in firmware stored on the memory 232 and executed by the electronicprocessor 230. At the time of receiving a new mode profile from theexternal device 108 for saving in the profile bank 302, the boundarycheck module confirms that each parameter of each feature is withinmaximum and minimum boundaries or is otherwise a valid value for theparticular parameter. For instance, the boundary check module confirmsthat the maximum speed set for the custom drive control profile iswithin the range of 360 RPM to 2900 RPM. In some instances, the boundarycheck module confirms the parameter values of the features of the powertool's current mode profile are within acceptable boundaries upon eachtrigger pull. In other embodiments, the boundary check module confirmsthe parameter values of the features of the power tool's mode profilewhen the mode profile is saved to the power tool 104. To carry out theboundary check, the firmware may include a list of parameters for eachfeature and the applicable maximum and minimum boundaries stored in, forinstance, a table, and the electronic processor 230 is operable toperform comparisons with the table data to determine whether theparameter values are within the acceptable boundaries. The boundarycheck module provides an additional layer of security to protect againsta maliciously generated or corrupted mode profiles, features, andparameter values.

Upon the compatibility check module determining that a mode profile hasincompatible features, the controller 226 is operable to output an alertmessage to the external device 108 that indicates the error, which maybe displayed in text on the touch screen 332, drive indicators 220, LEDs296 a-e, vibrating a motor, or a combination thereof may be used toalert the user that the mode profile includes incompatible features.Similarly, upon the boundary check module determining that a parametervalue is outside of an acceptable range, the controller 226 is operableto output an alert message to the external device 108 that indicates theerror (which may be displayed in text on the touch screen 332, driveindicators 220, LEDs 296 a-e, vibrating a motor, or a combinationthereof may be used to alert the user of having a parameter value aboveits maximum value and/or below its minimum value.

In some instances, enabling a first feature changes one or more boundaryvalues of a second feature. For instance, the no impact feature, whenenabled, alters the maximum speed parameter of the variable bounded PWMfeature. The no impact feature operates to stop operation of the impacttool (e.g., impact driver or impact wrench) as a driving operation nearsan impact blow (e.g., between hammer and anvil), but before the impactoccurs. For instance, the controller 226 monitors motor or batterycurrent using the current sensor of sensors 218 and, when the currentreaches a threshold, the controller 226 quickly reduces and then stopsthe speed of the motor 214. For instance, the controller 226 will changethe maximum percent trigger pull to a reduced percentage (e.g., between15-20%) to slow the motor 214, and shortly thereafter (e.g., in 0.1-0.5seconds), stop driving the motor 214. In the variable bounded PWMfeature, the user selects a maximum speed for non-impacting operationand a maximum speed for impacting operation. For instance, whenunloaded, the tool 104 will operate according to the amount trigger pull(indicated by trigger switch 213) up to a maximum speed as indicated bythe user for non-impacting operation. Once impacting begins (e.g., asdetermined by the controller 226 detecting a change in acceleration,amount of instantaneous current or change in current, microphone, oraccelerometer), the tool 104 will operate according to the amounttrigger pull (indicated by trigger switch 213) up to a maximum speed asindicated by the user for impacting operation. If the controller 226determines that impacting has not occurred for a certain time period,e.g., 200-300 milliseconds (ms), the tool 104 will again limit themaximum speed for non-impacting operation specified by the user.

As noted above, the no impact feature, when enabled, alters the maximumspeed parameter of the variable bounded PWM feature. More particularly,when the no impact feature is selected, the control screens of the toolinterfaces 318 also will change the upper boundary of the maximum speedselectable for the variable bounded PWM feature. For instance, themaximum speed is may be limited to 70-75 RPM for the variable boundedPWM feature when the no impact feature is enabled. Reducing the maximumspeed upper boundary can improve the performance of the no impactfeature by limiting the maximum speed and reducing the likelihood ofimpacting.

On some control screens of tool interfaces 318, a parameter assist blockis provided. The parameter assist block includes work factor inputs thatallow a user to specify details of the workpiece on which the power toolwill operate (e.g., material type, thickness, and/or hardness), detailson fasteners to be driven by the power tool (e.g., material type, screwlength, screw diameter, screw type, and/or head type), and/or details onan output unit of the power tool (e.g., saw blade type, number of sawblade teeth, drill bit type, and/or drill bit length). For instance, theself-tapping screw profile control screen 550 includes a parameterassist block 552, as shown in FIGS. 15A-B. The parameter assist block552 includes work factor inputs that allow a user to specify the steelgauge, the screw length, the screw diameter, and the screw head type.For instance, by selected the parameter assist block 552, a parameterassist screen 554 is generated as shown in FIG. 15C. On the parameterassist screen 554, the user can specify each of the work factor inputsby cycling through values using the touch screen 332. Upon selecting“done” to indicate completing entry of the work factor inputs, theexternal device 108 adjusts parameters of the feature or profile. Forinstance, the values of the parameters 558 in FIG. 15D have beenadjusted by the parameter assist block 552 relative to the parameters560 of FIG. 15A.

As shown in FIG. 15A, the parameters 558 include three user adjustableparameters of the same parameter type (motor speed) that are applicableat different stages (or zones) of a single tool operation (fastening).More specifically, for the self-tapping screw profile, a user isoperable to specify on the control screen 550 a starting motor speedduring the starting stage of a fastening operation, a driving speedduring an intermediate stage of the fastening operation, and a finishingspeed during a final/finishing stage of the fastening operation. Thecontroller 226 determines when the different stages of the fasteningoperation occur and are transitioned between. For instance, at thebeginning of a fastening operation for the tool 104 implementing theself-tapping screw profile, the controller 226 drives the motor 214 atthe user-selected starting speed. After the controller 226 determinesthat the motor or battery current exceeds a current threshold, thecontroller 226 begins driving the motor 214 at the user-selected drivingspeed. While in the intermediate/driving stage, when the controller 226detects an impact blow, the controller 226 begins driving the motor 214at the user-selected finishing speed. In some embodiments, in thevarious stages of the self-tapping screw profiles, the controller 226drives the motor 214 at the user-selected speeds regardless of theamount depression of the trigger 212, as long as the trigger 212 is atleast partially depressed. In other words, the speed of the motor 214does not vary based on the amount of depression of the trigger 212. Inother embodiments, the user-selected speeds in the self-tapping screwprofile are treated as maximum speed values. Accordingly, in theseembodiments, the speed of the motor 214 varies based on the amount ofdepression of the trigger 212, but the controller 226 ensures that themotor 214 does not exceed the user-selected speeds for the variousstages.

Different parameter assist blocks are provided for different modeprofile types, and each parameter assist block may include work factorinputs appropriate to the particular mode profile type. For instance, aspeed control profile for driving fasteners includes the trigger speedcontrol map feature, which allows a user to specify the minimum andmaximum speed parameter values of the power tool 104, whose speed variesbetween a minimum and maximum speed based on the position of the trigger212. The speed control profile may include a parameter assist block thatreceives as work factor inputs the material type (e.g., wood, steel, orconcrete), the screw head type (e.g., standard, Phillips, or square),screw diameter (e.g., #6, #8, or #10) and the screw length (e.g., 1 in.,2 in. or 3 in.). The parameter assist block will adjust the maximum andminimum speed parameter values based on the work factor inputs.

FIG. 16 illustrates a hammer drill/driver 600, which is another exampleof the power tool 104 that communicates with the external device 108.The hammer drill/driver 600 includes a clutch ring 602, a mode selectorring 604, the mode pad 208 (see FIG. 4), and a high-low speed (gearratio) selector 606. The mode selector ring 604 includes four positions:drill mode, hammer drill mode, clutching drive mode, and adaptive mode.When the mode selector ring 604 is positioned to select the drill mode,hammer drill mode, or clutching drive mode, the hammer drill 600essentially operates as a traditional hammer drill/driver in selectedone of the three modes. However, when the mode selector ring 604 ispositioned to indicate the adaptive mode, the mode pad 208 is activatedand operates similar to that which is described above for the power tool104. That is, the hammer drill has a profile bank 302 that isconfigurable using the external device 108.

FIGS. 17A-B illustrates a mode profile type applicable to the hammerdrill/driver 600, a custom drive control (hammer drill/driver) profilehaving a control screen 620. This profile includes the electronic clutchmap feature, which allows a user to specify clutching parameters. Forinstance, when the adaptive button is selected (FIG. 17A), the user canspecify clutch ring maximum and minimum settings and, when the fixedbutton is selected (FIG. 17B), the user can specify a particular torquesetting at which point the hammer drill/driver 600 will begin clutching.The mode profile further includes a trigger speed control map featurethat allows the user to separately specify the maximum speed for the lowspeed setting and the high speed setting. The user can elect whether thehammer drill/driver is in the low speed setting or high speed settingbased on the position of the high-low speed selector 606. The customdrive control (hammer drill/driver) profile is applicable to the hammerdrill/driver 600, but not the impact driver 104, because featuresoffered on this mode profile (e.g., electronic clutch map feature) arenot applicable to the impact driver 104, which doesn't have anelectronic clutch capability.

Enabling the electronic clutch feature, in which the user specifies anapproximate torque value at which the hammer drill/driver 600 shouldbegin clutching and stop driving, changes one or more boundary values ofa soft start feature. In the soft start feature, when the trigger 212 ispulled, the controller 226 will start driving the motor 214 andgradually increase the speed of the motor 214 to the desired speedindicated by the trigger switch 213 over a user-entered time period(e.g., entered via the GUI of the external device 108). On the hammerdrill/driver 600, the minimum and maximum boundaries for the time periodof the soft start feature may be 20 ms and 5000 ms, respectively. Whenthe torque value specified by the user for the hammer drill/driver 600is set above a certain value (e.g., 70 in-lbs.), the control screens ofthe tool interfaces 318 will increase the minimum boundary of the softstart (e.g., from 20 ms to 100 ms). This change in the minimum boundarywill help reduce torque overshoot and improve the electronic clutchperformance. Additionally, when the torque value specified by the userfor the hammer drill/driver 600 is set below a certain value (e.g., 70in-lbs.), the control screens of the tool interfaces 318 will increasethe minimum boundary of the soft start (e.g., from 20 ms to 1000 ms).This increase further reduces the likelihood of torque overshoot,particularly when driving in delicate applications.

The boundary values for certain features may also vary depending on thetool on which the feature is implemented. For instance, while thestandard soft start time period boundaries may be 20 ms and 5000 ms forthe hammer drill/driver 600, on an impact driver without an electronicclutch or the electronic clutch feature, the minimum and maximumboundaries for the time period of the soft start feature may be 100 msand 5000 ms, respectively.

As noted above, various other features are available for selection by auser for configuring a power tool 104 or hammer drill/driver 600. Forinstance, the trigger speed control map feature enables a user toindicate a maximum motor speed, minimum motor speed, or both for themotor 214 based on depression of the trigger 212. For instance, a usermay indicate via a control screen of a tool profile 314 a maximum and/orminimum speed parameter value (see, e.g., FIG. 8A). These selectedparameter values are provided to the tool as part of a mode profile 300,and they map to a particular pulse width modulated (PWM) duty cycle.Accordingly, if a user depresses the trigger 212 by a first (minimum)amount, the controller 226 generates a PWM signal with a first (lower)duty cycle for driving the FET switching 216 and driving the motor 214the minimum speed. If the user fully depresses the trigger 212 by asecond (maximum) amount, the controller 226 generates a PWM signal witha second (higher) duty cycle for driving the FET switching 216 anddriving the motor 214 the maximum speed. The duty cycle may varylinearly between the minimum and maximum values based on the depressionamount of the trigger 212. This trigger speed control map feature usesan open-loop control technique.

Closed loop variable speed control is another available feature wherethe user can specify a maximum and/or minimum speed for the motor 214.The closed loop variable speed feature is similar to the trigger speedcontrol map feature, except that the controller 226 monitors Hall sensoroutput form the sensors 218 to determine the actual speed of the motor214 to provide closed loop feedback. The controller 226, in turn, willincrease or decrease the PWM signal duty cycle to the FET switching 216to achieve the desired motor speed.

Closed loop constant speed control is another feature that uses Hallsensor output for closed loop feedback. In the closed loop constantspeed control feature, the user specifies a desired speed (e.g., via acontrol screen of a tool profile 314), and the motor 214 is controlledwith closed loop feedback to be at the specified speed when the trigger212 is depressed, regardless of the amount of depression.

The pulsing speed feature receives two user selected speeds for themotor 214 via a control screen of a tool profile 314. In some instances,the user may also select an oscillation rate (e.g., frequency or timeperiod). Upon the user depressing the trigger 212, the controller 226will drive the motor 214, oscillating between the user-specified twospeeds at a default oscillation rate or an oscillation rate indicated bythe user. In some instances, the controller 226 drives the motor 214 atthe specified speeds using open loop control, for example, with PWMsignals having predetermined duty cycles expected to provide the desiredspeeds. In other instances, the controller 226 drives the motor 214using closed loop feedback where the duty cycle of the PWM signaldriving the FET switching 216 is adjusted to maintain the desired speedsbased on motor speed feedback (e.g., from the Hall sensors of sensors218). While outputs from the Hall sensors are provided as an exampletechnique for determining motor speed in this and other embodiments, insome embodiments, other motor speed detection techniques are used, suchas monitoring back electromotive force (EMF). The open loopimplementation may be referred to as the PWM pulse feature, while theclose loop implementation may be referred to as the constant pulsefeature.

The impact detection with shutdown feature receives a user-specifiednumber of impacts. During operation, upon a trigger pull, the controller226 drives the motor 214 until the earlier of the user releasing thetrigger 212 and the controller 226 detecting that the specified numberof impacts occurred. The controller 226 may detect impacts as mentionedabove, e.g., based on a change in acceleration or current, and may usean impact counter that the controller 226 increments upon each detectedimpact. Once the impact counter reaches the threshold indicated by theuser, the controller 226 stops driving the motor 214. In preparation forthe next operation, the impact counter may be reset when the userreleases the trigger 212.

Impact detection with speed change feature receives a user-specifiedspeed and direction. When unloaded and until the first impact isdetected by the controller 226, the controller 226 drives the motor 214normally, varying the speed according to trigger pull, up to the maximumset speed. If the motor 214 is rotating in the user-specified direction(e.g., forward), upon the controller 226 detecting an impact, thecontroller 226 drives the motor 214 up to the maximum of theuse-specified speed. For instance, if the user has the trigger 212 fullydepressed when the impact is detected, the speed of the motor 214 willchange (e.g., reduce) to the user-specified speed. If impacts are nolonger detected for a certain period of time (e.g., 200-300 ms), thecontroller 226 returns to the original operation where theuser-specified speed is no longer the maximum speed for the motor 214.

The self-tapping screw (drill) profile includes a feature for drivingself-tapping screws that does not use impact detection. Morespecifically, for the self-tapping screw (drill) profile, a userspecifies, on a control screen of a profile 314, an initial speed and afinishing speed. In some instances, the user is also able to specify atransition level. During operation, the controller 226 controls themotor 214 to start at the initial speed and to transition to thefinishing speed upon detecting that the current of the motor 214 orbattery pack 215 exceeds a certain threshold. The threshold may be apredetermined value or a value selected by the external device 108dependent on the transition level indicated by the user. For instance,the user may specify a low sensitivity level whereby the controller 226would switch from the initial speed to the finishing speed after ahigher level of current than if the user specified a high sensitivitylevel. The transition levels may be on a sliding scale (e.g., between 1and 10 or 1 and 100), and the associated current threshold may varyproportionally to the scale. As with the self-tapping screw profile withthree stages described above with respect to FIG. 15A, in someembodiments, in the two stages of the self-tapping screw (drill)profiles, the controller 226 drives the motor 214 at the user-selectedspeeds regardless of the amount of depression of the trigger 212, aslong as the trigger 212 is at least partially depressed. In otherembodiments, the motor speed varies based on the amount that the trigger212 is depressed, and the user-selected speeds are treated as maximumspeed values.

Further mode profiles types are available to the power tools 104. Forinstance, for impact drivers (see, e.g., FIG. 2) and impact wrenches,further mode profile types include a tapping profile, a concrete anchorprofile, a finish work profile, a groove-joint coupling profile, abreakaway profile, and a finish control profile. Moreover, for thehammer drill/driver 600, further mode profiles types include a metaldrilling profile, and a speed pulse profile. As noted above, for eachmode profile, a unique control screen of the associated tool interface318 may be provided on the GUI of the external device 108. Additionally,the power tool 104 may have options that are adjustable across aplurality of mode profiles, such as a customized gear ratio changeoption, as will be described in more detail below. Such options may alsohave a unique control screen of the associated tool interface 318 on theGUI of the external device 108. Based on the parameters of theabove-mentioned mode profiles and options, the controller 226 generatesparticular control signals to the FETs through the switching network 216to achieve the desired direction of rotation, number of rotations, speedof rotation, and/or maximum speed of rotation of the motor 214.

The tapping profile allows the power tool 104, upon pull of the trigger212, to automatically drive forward and in reverse (i.e., a firstpredetermined amount of rotations forward and a second predeterminedamount of rotations in reverse) repeatedly until release of the trigger212. The power tool 104 can be used to tap a screw when the power tool104 is driven in such a manner. As shown in FIG. 18 on a control screen1805 of the GUI, the tapping profile includes a parameter assist block1810 for receiving, from the user, one or more of a screw type, a screwlength, a screw diameter, and a type of substrate into which the screwwill be driven. In response to the external device 108 receiving userinputs in the parameter assist block 1810, the external device 108adjusts parameters 1815 of the tapping profile (e.g., a number offorward rotations, a number of reverse rotations, a forward speed atwhich forward rotations are to occur, and a reverse speed at whichreverse rotations are to occur). The external device 108 may adjust theparameters 1815 using a look-up table that includes parameter valuescorresponding to the user inputs in the parameter assist block 1810. Ifdesired, the user is able to further adjust each parameter 1815 (e.g.,using a slider, or another type of actuator, on the GUI as shown in FIG.18). The power tool 104 receives the tapping profile including thespecified parameters, for instance, in response to a user selecting tosave the tapping profile on the external device 108 as described abovewith respect to FIG. 11.

The concrete anchor profile control screen is similar to the controlscreen 550 of FIGS. 15A-B and allows a user to specify a starting speed,driving speed, and finishing speed, as well as the trigger ramp up andwork light parameters. However, the concrete anchor profile controlscreen has a parameter assist block with different work factor inputsthan the control screen 550. In particular, the concrete anchor profilecontrol screen has one or more of the following work factor inputsincluding an anchor type (e.g., wedge or drop-in), an anchor length, ananchor diameter, and concrete strength (e.g., in pounds per square inch(PSI)). In response to the external device 108 receiving user inputsspecifying each of the one or more work factor inputs, the externaldevice 108 adjusts the starting speed, driving speed, and finishingspeed parameters. The user is then able to further adjust eachparameter, if desired (e.g., using a slider on the GUI). The power tool104 receives the concrete anchor profile including the specifiedparameters, for instance, in response to a user save action on theexternal device 108 as described above.

Similar to the self-tapping screw profile, the power tool 104implementing the concrete anchor profile determines when to start andtransition between the different stages of the fastening operation. Forinstance, at the beginning of a fastening operation for the tool 104implementing the concrete anchor profile, the controller 226 drives themotor 214 at the user-specified starting speed. After the controller 226determines that the motor or battery current exceeds a currentthreshold, the controller 226 begins driving the motor 214 at theuser-specified driving speed. While in the intermediate/driving stage,when the controller 226 detects an impact blow, the controller 226begins driving the motor 214 at the user-selected finishing speed. Insome embodiments, the controller 226 may also change from theintermediate/driving speed stage to the finishing stage based ondetected current exceeding another current threshold.

In some embodiments, in the various stages of the self-tapping screwprofiles, the controller 226 drives the motor 214 at the user-selectedspeeds regardless of the amount depression of the trigger 212, as longas the trigger 212 is at least partially depressed. In other words, thespeed of the motor 214 does not vary based on the amount of depressionof the trigger 212. In other embodiments, the user-selected speeds inthe self-tapping screw profile are treated as maximum speed values.Accordingly, in these embodiments, the speed of the motor 214 variesbased on the amount of depression of the trigger 212, but the controller226 ensures that the motor 214 does not exceed the user-selected speedsfor the various stages. In some embodiments, while in the starting speedstage, the amount of depression of the trigger 212 varies the motorspeed, but, while in the driving speed and finishing speed stages, thespeed of the motor 214 does not vary based on the amount of depressionof the trigger 212.

Use of the concrete anchor profile can improve repeatability from oneconcrete anchor to the next, and reduce breaking of anchors caused byapplying too much torque or driving with too much speed.

The finish work profile, also referred to as the trim work profile, isused for more delicate fastening operations. In a first version of thefinish work profile, the user specifies the maximum speed of the motor214. The controller 226 drives the motor 214 in response to a trigger212 at a speed that does not exceed the maximum speed specified, andstops the motor 214 when a certain pre-impact current threshold isreached. The pre-impact current threshold is a motor current levelbefore which an impact will occur, which can be determined throughtesting. In other words, as long as the motor current is below thepre-impact current threshold, the power tool 104 is expected to drivewithout impacting. However, if the motor current exceeds the pre-impactcurrent threshold, impacting would be likely to occur. Additionally, theprobability of impacting starting increases as the difference betweenthe motor current and the pre-impact current threshold increases. Thus,the controller 226 will cease driving the motor 214 before a torqueoutput level is reached at which impacting will occur, providing a moredelicate driving torque that will reduce damage to detail, finishing, ortrim work. In another version of the finish work profile, rather thanstopping the motor 214 at a pre-impact current threshold, the controller226 ceases driving the motor 214 after a certain number of impacts isdetected by the controller 226. The number of impacts may be specifiedby the user via a control screen on the external device 108, along withthe maximum speed of the motor. The finish work profile may use the noimpact feature noted above in Table II.

The groove-joint coupling profile is used for tightening a groove-jointcoupling that joins, for instance, grooved end pipes. As shown in FIG.19, a groove-joint coupling 1900 generally includes two semi-circleportions (e.g., a first semi-circle portion 1905 and a secondsemi-circle portion 1910) that, when joined together, form a ring aroundthe interface of two pipes (e.g., a first pipe 1915 and a second pipe1920). The coupling may also include a gasket between (a) the formedouter ring and (b) the pipes 1915, 1920 to seal the interface of the twopipes 1915, 1920. The two semi-circle portions 1905, 1910 may eachinclude flanged ends 1925, 1930, respectively. FIG. 19 is a side view ofan exemplary groove joint coupling that shows one flanged end 1925, 1930of each semi-circle portion 1905, 1910, while the other flanged end ofeach semi-circuit portion 1905, 1910 is on the opposite side hidden fromview. Each flanged end 1925, 1930 includes a through-hole. The flangedends 1925, 1930 of the semi-circle portions 1905, 1910 meet and thethrough-holes are aligned to receive a threaded bolt 1935. A nut istightened on each end of the threaded bolt 1935, bringing the flangedends 1925, 1930 together, forming the ring, and compressing or securingthe gasket in position to seal the interface of the pipes 1915, 1920. Asshown in FIG. 19, the bolt 1935 is inserted through the visible flangedends 1925, 1930 and the power tool tightens a nut on an end of theinserted bolt 1935.

As noted, a nut and bolt coupling is located on two, opposing sides ofthe groove-joint coupling 1900. When tightening the nuts on thegroove-joint coupling, a user generally alternates between the nut andbolt coupling on a first side of the groove-joint coupling and the nutand bolt coupling on a second side of the groove-joint coupling.Alternating sides allows even coupling and ensures a functioning seal,preventing one side from being over-tightened and the other side formbeing under tightened.

The groove-joint coupling profile includes a parameter assist block forreceiving, from the user, a coupling type (e.g., steel) and a couplingsize (e.g., 2 inch, 4 inch, or 6 inch diameter) as work factor inputs ofthe groove-joint coupling. In response to the external device 108receiving user inputs specifying each of the one or more work factorinputs, the external device 108 adjusts the maximum speed and the numberof impacts parameters. The user is then able to further adjust eachparameter, if desired. The power tool 104 receives the groove jointcoupling profile including the specified parameters, for instance, inresponse to a user save action on the external device 108 as describedabove with respect to FIG. 11.

In operation, in response to a pull of the trigger 212, the controller226 drives the motor 214 at a speed dependent on the amount of triggerdepression up to the maximum speed set by the maximum speed parameter.The controller 226 continues to drive the motor until the controller 226detects that the specified number of impacts has occurred. Once thenumber of impacts has occurred, the controller 226 ceases driving of themotor 214, and the user alternates to the other side of the groove-jointcoupling. In practice, the user may alternate momentarily driving eachnut of the groove-joint coupling until a lightly snug fit is achieved.In other words, the user gets the nut-bolt tightening operation started,but releases the trigger before the specified number of impacts isreached. After getting the coupling started, the user then proceeds tohold the trigger down on the first side until the number of impacts isreached, and then complete the tightening operation by switching to thesecond side and driving the nut until the number of impacts is reached.The groove-joint coupling profile may use the impact counting withshutdown feature noted above in Table II.

The breakaway profile is used for removing fasteners from a workpieceand removing nuts from bolts. The profile allows the power tool 104 tobegin with high speed and power, and to automatically reduce motor speedto provide the user greater control for ending the fastener/nut removaland to prevent loss of a nut or fastener at the end of the operationwhen it is removed. As shown in FIG. 20, the external device 108generates a control screen 2000 to customize the breakaway profile. Forexample, the control screen 2000 for the breakaway profile receives userinput indicating one or more of an initial breakaway speed 2002, afinishing speed 2004, and a transition parameter (e.g., number ofimpacts or a time period). In the illustrated embodiment, the controlscreen 2000 also includes a maximum forward speed parameter 2006. Thepower tool 104 receives the breakaway profile including the specifiedparameters 2002, 2004, 2006, and more, if applicable, for instance, inresponse to a user save action on the external device 108 as describedabove with respect to FIG. 11. If desired, the parameters 2002, 2004,2006, (and the transition parameter) can be adjusted by the user (i.e.,using a slider on the GUI). These parameters will be explained ingreater detail below.

In some embodiments, the power tool 104 implementing the breakawayprofile begins operation having a maximum motor speed as specified bythe initial breakaway speed 2002. After the number of impacts occur orafter the time period elapses, as specified by the transition parameter,the controller 226 reduces the speed of the motor 214 to the finishingspeed 2004. In another embodiment, the power tool 104 implementing thebreakaway profile also begins operation having a maximum motor speed asspecified by the initial breakaway speed 2002. However, the power tool104 continues operating with the maximum motor speed setting untilimpacts cease being detected. When no impact is detected for a certainamount of time, the power tool 104 transitions to the finishing speed2004.

In some embodiments, the power tool 104 implementing the breakawayprofile operates differently depending on the position of theforward/reverse selector 219 on the power tool 104. FIG. 21 illustratesa method 2100 of implementing the breakaway profile in such a way. Atblock 2105, the user pulls the trigger 212. Upon trigger pull, at block2110, the controller 226 determines whether the forward/reverse selector219 is in the reverse position. When the forward/reverse selector 219 isin the forward position, at block 2115, the controller 226 sets themaximum speed of the motor 214 to the maximum forward speed. At block2120, the power tool 104 operates without monitoring for impacts. Thepower tool 104 continues to operate in this manner until the userreleases the trigger 212.

When the forward/reverse selector 219 is in the reverse position, atblock 2125, the controller 226 sets the maximum speed of the motor 214to the finishing speed. The power tool 104 then operates whilemonitoring for impacts. At block 2130, the controller 226 determineswhether the power tool 104 is impacting (i.e., whether impacts areoccurring), as will be discussed in greater detail below. When the powertool 104 is not impacting, the maximum speed of the motor 214 remains atthe finishing speed. When the power tool 104 is impacting, at block2135, the controller 226 sets the maximum speed of the motor 214 to theinitial breakaway speed. Note that when using the power tool 104 toremove nuts, fasteners, etc., the power tool 104 may begin impactingalmost immediately upon the user pulling the trigger 212. In suchsituations, the maximum motor speed is almost immediately set to theinitial breakaway speed. After the maximum speed of the motor 214 is setto the initial breakaway speed, the method 2100 proceeds back to block2130 so the controller 226 may continue to monitor whether impacts areoccurring. When the nut, fastener, etc. that is being removed becomesloose, the power tool 104 will stop impacting. At block 2130, when thecontroller 226 determines that impacts are no longer occurring, thecontroller 226 proceeds to block 2125 and sets the maximum speed of themotor 214 to the finishing speed. The power tool 104 continues tooperate in this manner until the user releases the trigger 212.

To detect impacts, the controller 226 may detect changes in motoracceleration that occur upon each impact. Accordingly, the controller226 may detect that impacts have ceased when no change in motoracceleration indicative of an impact has occurred for a certain amountof time.

As motor speed increases, changes in motor acceleration due to impactsreduce in size and are more difficult to detect. Accordingly, in someembodiments, the controller 226 uses different impact detectiontechniques depending on the motor speed. When the motor speed is below acertain (e.g., predetermined) speed threshold, the controller 226monitors the motor acceleration to detect impacts, and the controller226 may detect that impacts have ceased when no change in accelerationindicative of an impact has occurred for a certain amount of time. Whenthe motor speed is above the certain speed threshold, the controller 226considers that impacts are occurring when the motor current is above acertain (impact threshold) level. In these embodiments, the controller226 may infer the number of impacts that have occurred based on theamount of time that the motor current has been above the impactthreshold level and the motor speed has been above the speed threshold.The number of impacts may be inferred using a predeterminedimpacts-per-millisecond value, which may vary depending on the motorspeed and motor current. When the motor is operating at speeds above thespeed threshold, the controller 226 may detect that impacts have ceasedwhen the current drops below the impact threshold level.

The metal drilling profile is used for drilling into a metal workpieceusing the hammer drill/driver 600, or another power tool. The metaldrilling profile allows the hammer drill/driver 600 to operate at anappropriate speed to drill a hole with a drill bit or hole saw in themetal workpiece without unnecessarily wearing out the drill bit or holesaw and to reduce the difficulty in controlling the tool. For example,it can be beneficial to drive the motor of the hammer drill/driver 600at a slower speed for a hole saw than for a twisted bit. The metaldrilling profile includes a parameter assist block for receiving, fromthe user, work factor inputs including one or more of an accessory type(e.g., hole saw or twist bit), a material type (e.g., galvanized steel,aluminum, stainless steel), and a material thickness or gauge. Inresponse to the external device 108 receiving user inputs specifyingeach of the one or more work factor inputs, the external device 108adjusts the maximum driving speed of the hammer drill/driver 600. Theuser is then able to further adjust the maximum driving speed, ifdesired (e.g., using a slider on the GUI). The hammer drill/driver 600receives the metal drilling profile including the specified parameter,for instance, in response to a user save action on the external device108 as described above with respect to FIG. 11. Thereafter, in responseto a trigger pull, the hammer drill/driver 600 limits the maximum speedto the specified level. The metal drilling profile uses, for instance,the variable bounded speed feature described above with respect to TableII.

The speed pulse profile is a variation of the metal drilling profile inthat the speed pulse profile is also used to configure a power tool fordrilling in metal. The speed pulse profile includes a parameter assistblock for receiving, from the user, work factor inputs including one ormore of an accessory type (e.g., hole saw or twist bit), a material type(e.g., galvanized steel, aluminum, stainless steel), and a materialthickness or gauge. In response to the external device 108 receivinguser inputs specifying each of the one or more work factor inputs, theexternal device 108 adjusts a low speed parameter, a high speedparameter, and a pulse duration parameter (e.g., in milliseconds). Theuser is then able to further adjust these parameters, if desired (e.g.,using a slider on the GUI). The hammer drill/driver 600 receives thespeed pulse profile including the specified parameters, for instance, inresponse to a user save action on the external device 108 as describedabove with respect to FIG. 11.

In operation, in response to a trigger pull, the hammer drill/driver 600alternates between momentarily driving the motor of the hammerdrill/driver 600 at the low speed and the high speed specified by theuser. The amount of time that the motor is driven at the high speedbefore switching to the low speed, and vice versa, is the pulse durationparameter specified by the user. The speed pulse profile uses, forinstance, the pulsing speed feature described above with respect toTable II.

A finish control profile may also be implemented by the power tool 104.The finish control profile allows the power tool 104 to begin operationat a maximum initial speed and to reduce the maximum speed to a maximumfinishing speed after the user pulses the trigger (i.e., releases andre-presses the trigger in less than a predetermined time period). Asdescribed above, setting the maximum speed allows the power tool 104 tooperate according to the amount of trigger pull (indicated by triggerswitch 213) up to the maximum speed. The finish control profile assistsin precisely driving a fastener into a workpiece. More particularly,when nearing completion of a fastening operation, correctly timingrelease of the trigger 212 so that the fastener is properly driven canbe challenging, especially at high speeds. If the trigger 212 isdepressed too long, the fastener may be driven too far into theworkpiece or over-torqued, which could result in the fastener headbreaking off. If the trigger 212 is released too soon, the fastener mayextend out from the workpiece. Precisely controlling speed of the motor214 of the power tool 104 may prevent the fastener from being overdrivenor under driven.

The external device 108 generates a control screen 2205 for allowing auser to customize the finish control profile. As shown in FIG. 22, thecontrol screen 2205 for the finish control profile is configured toreceive, from the user, one or more of the maximum initial speed 2207,the maximum finishing speed 2210, and a pulse time period 2212. Thepower tool 104 receives the finish control profile including thespecified parameters, for instance, in response to a user save action onthe external device 108 as described above with respect to FIG. 11. Asshown on the control screen 2205 of the GUI in FIG. 22, in someembodiments, parameters 2207, 2210, 2212 are configurable by the user,and if desired, the parameters 2210 can be adjusted by the user (i.e.,using a slider on the GUI).

FIG. 23 illustrates a flowchart of a method 2300 of implementing thefinish control profile on the power tool 104. At block 2305, the userpulls the trigger 212 to start operation of the power tool 104. At block2310, the controller 226 sets the maximum speed of the motor 214 to themaximum initial speed. At block 2315, the controller 226 determineswhether the trigger 212 has been released. When the controller 226determines that the trigger 212 has not yet been released, the powertool 104 continues to monitor the trigger 212 and operate with themaximum speed set to the maximum initial speed until the user releasesthe trigger 212. When the controller 226 determines that the trigger 212has been released, the controller 226 begins a timer, and at block 2320,the controller 226 determines whether the trigger 212 has beenre-pressed. When the controller 226 determines that the trigger 212 hasbeen re-pressed, at block 2325, the controller 226 compares the timervalue to the pulse time period and determines whether the trigger 212was released for less than the pulse time period (i.e., whether thetrigger 212 was pulsed by the user).

When the controller 226 determines that the trigger 212 was released forless than the pulse time period (i.e., pulsed by the user), at block2330, the controller 226 sets the maximum speed of the motor 214 to themaximum finishing speed. The method 2300 then proceeds to block 2315 tocontinue to monitor the trigger 212. On the other hand, when thecontroller 226 determines that the trigger 212 was not released for lessthan the pulse time period (i.e., not pulsed by the user), thecontroller 226 proceeds to block 2310 where the controller 226 sets themaximum speed of the motor 214 to the maximum initial speed. Thus, whenthe maximum speed is set at the maximum finishing speed and the trigger212 is released for longer than the pulse time period, the controller226 will reset the maximum speed of the motor 214 to the maximum initialspeed.

As mentioned above, the customized gear ratio change option may also beimplemented on the power tool 104. This option may be used inconjunction with a plurality of profiles. In particular, the features ofthe customized gear ratio change option may apply regardless of whatprofile the power tool 104 is operating in. The power tool 104 includesa multiple speed gearbox that allows the motor 214 to provide differentlevels of torque and speeds to the output device 210. The multiple speedgearbox is coupled to and driven by an output rotor shaft of the motor214. An output side of the multiple speed gearbox is coupled to anddrives the output device 210. An actuator can shift between gears of themultiple speed gearbox to provide higher torque (lower speed) or lowertorque (higher speed) depending on the situation in which the power tool104 is operating.

The user can select whether the power tool 104 implements automatic gearratio change or manual gear ratio change during operation. Such aselection can be made using a control screen 2405 on the GUI (as shownin FIG. 24) or by making a selection with a button or switch on thepower tool 104. FIG. 25 illustrates a flowchart of a method 2500 ofimplementing the customized gear ratio change option on the power tool104. At block 2505 the user pulls the trigger 212 to start operation ofthe power tool 104. At block 2505, the gear ratio of the multiple speedgearbox may be set to a default gear ratio or may be left at the gearratio at which the power tool was most recently operated. At block 2510,the controller 226 monitors the current drawn by the motor 214. As anut, fastener, etc. is tightened or a workpiece is drilled, the currentdrawn by the motor 214 increases.

At block 2515, the controller 226 determines whether the motor currentis greater than a first predetermined threshold. When the motor currentis greater than the first predetermined threshold, at block 2520, thecontroller 226 will control the actuator to automatically shift themultiple speed gearbox to a lower gear to provide more torque. When themultiple speed gearbox is already in the lower gear, the controller 226controls the actuator such that the multiple speed gearbox remains inthe lower gear. Similarly, at block 2515, when the current drawn by themotor 214 is below the first predetermined threshold, the controller 226proceeds to block 2525 and controls the actuator to automatically shiftthe multiple speed gearbox to a higher gear, which drives the outputshaft faster, but with less torque. When the multiple speed gearbox isalready in the higher gear, the controller 226 controls the actuatorsuch that the multiple speed gearbox remains in the higher gear. In someembodiments, more than one predetermined threshold may be implemented.The additional thresholds enable the controller 226 to shift themultiple speed gearbox between more than two gear ratios to change thetorque provided to the output device 210 with more granularity.

On the other hand, when the automatic gear ratio is not selected, thecontroller 226 will not automatically shift the multiple speed gearboxbased on the current drawn by the motor 214. Rather, the multiple speedgearbox will remain in the same gear for the entirety of the operationof the power tool 104. Thus, the power tool 104 will provide the sametorque to the output device 210 throughout the entirety of the operationof the power tool 104. As shown in FIG. 24, parameters 2410 areconfigurable by the user. The user may manually adjust the torque levelprovided by the power tool 104 when automatic gear ratio change is notselected. As described above, this manual setting could be accomplishedon the control screen 2405 of the GUI or on the power tool 104 using abutton or switch. Based on the manual setting of the torque level by theuser, the controller 226 can shift the multiple speed gearbox to utilizethe gears that will most closely produce the torque level selected bythe user. For example, in applications where high torque is alwaysdesired, the user can turn off the automatic gear ratio change andmanually set the highest torque level that the power tool 104 canprovide.

Many parameters of the profiles described above were explained to beconfigurable by the user on the control screen of a GUI of the externaldevice 108. However, in some embodiments, the parameters may be adjustedon the power tool 104 itself in addition to or in conjunction with beingconfigurable on the external device 108. For example, buttons, switches,or a display screen may be present on the power tool to allow the userto configure the parameters of the profiles described above.Furthermore, in some embodiments, the profiles may be pre-programmed onthe power tool 104 and may be selected using buttons, switches, and/or adisplay screen on the power tool 104.

In some embodiments, non-power tool devices communicate with theexternal device 108 via the app-generated GUI in the system 100. Forinstance, lighting in a building or worksite may have a power circuitwith communication capabilities, similar to the wireless communicationcontroller 250. The external device 108 is operable to connect or pairwith the wireless communication controller 250. The external device 108receives an identifier from the power circuit and is thus able toidentify the type of device (e.g., lighting). The GUI of the externaldevice 108 then loads a mode profile of the profiles 314 for theidentified type of device, which presents a control screen to the usersuch that the user can control the lighting via the power circuit (e.g.,on, off, dim/brightness control, and sleep timer (turn off after settime)).

The external device 108 is further operable to connect to othernon-power tool devices (e.g., radios and tool boxes), the type of whichare identified by the external device 108. In response, theapp-generated GUI provides an appropriate control screen from profiles314 for the user. In some instances, the communication capabilities ofthe non-power tool devices are not integrated at the time of manufacturebut, rather, are added by a user. For instance, a user may add an RFIDtag or communication circuit to non-powered equipment (e.g., a ladder,work bench, or tool box) or to powered devices without built-incapabilities (e.g., earlier model power tools, power tools of adifferent manufacturer). The RFID tag or communications circuit is, forinstance, programmed by a user to store a unique identifier for theattached device/equipment using the external device 108. In turn, theexternal device 108 can communicate with and receive an identifier ofthe attached device/equipment. In response, the external device 108determines the type of device/equipment and provides an appropriatecontrol screen from profiles 314 on the app-generated GUI. While thecommunication circuit or RFID tag may not be integrated into thefunctionality of the device to which it is attached, the circuit or tagmay include controllable elements itself. For instance, the circuit ortag may include an indicator (e.g., light, speaker, or vibration motor)that the external device 108 can request be activated to help identifythe attached device, similar in function to selecting the identify toolbutton 378 described above with respect to FIG. 7. In one example, thecontrol screen of the GUI on the external device 108 may display theidentity of the device/equipment (obtains from the RFID tag orcommunication circuit), provide a button for updating thedevice/equipment information stored on the tag or circuit, and providean identify button to cause the tag or circuit to activate an indicator.

FIG. 26 is a flowchart illustrating a method 2600 of programming a powertool 104 as discussed above. In step 2605, the external device 108 andthe power tool 104 establish a communication link using the transceiverof the external device 108 and the wireless communication controller 250of the power tool 104. Establishing such a communication link isdiscussed above, for example, with respect to FIGS. 5 and 6 and thediscussion of switching from the connectable state of the power tool 104to the connected state of the power tool 104. In step 2610, the externaldevice 108 receives, with the transceiver, a first mode profile that isstored on the power tool 104 (e.g., in the mode profile bank 302) atstep 2610. Receiving different mode profiles from the power tool 104 isdescribed above, for example, with respect to FIGS. 8A-B. As alsodiscussed above with respect to FIGS. 8A-B, the mode profile received bythe external device 108 (and used to populate the control screen 380) isdefined by a profile type and a first value associated with a parameterfor executing the profile type. As an example, a custom drive controlprofile (FIGS. 8A-B) may be of a first profile type, while aself-tapping screw profile (FIGS. 15A-B) may be of another.

In step 2615, the external device 108 displays a control screen. Forexample, as shown in FIGS. 8A-B, the external device 108 displays thecontrol screen 380, and the control screen 380 is associated with aprofile type and has a parameter at a first value. The external device108 is configured to receive a user input through the control screen(step 2620), and generates a second mode profile by modifying theparameter to be at a second value in response to receiving the userinput (step 2625). As discussed above, the user input may includeediting textboxes (e.g., the textboxes 390, 398, and 394 b of FIGS.8A-B), moving sliders (e.g., sliders 391, 397, 393, and 394 a of FIGS.8A-B), and/or actuating switches (e.g., switches 394 c and 396 of FIGS.8A-B), and/or interacting with other user interface components on thecontrol screen 380. Additionally, generating a second mode profile isdiscussed above with respect to saving a new mode profile as shown in,for example, FIG. 11. In step 2630, the external device 108 transmitsthe second mode profile to the power tool 104. The external device 108transmits the second mode profile to the power tool 104 to enable thepower tool 104 to operate according to the second mode profile, asdiscussed above with respect to, for example, FIG. 11.

The method of programming the power tool 104 discussed above may alsoinclude establishing a communication link between a second power tool(e.g., a separate power tool than the first power tool 104) and theexternal device 108. Once the communication link is established with thesecond power tool, the external device 108 may receive the first modeprofile from the second power tool, for example, because it had beenpreviously stored on the second power tool. The external device 108 maythen receive the second mode profile from the remote server 112. Forexample, the external device 108 may send an identifier for the firstmode profile obtained from the second power tool to the remote server112. The remote server 112 may respond with the second mode profile,which is an updated version of the first mode profile, because the firstand second mode profiles have the same identifier (e.g., “Deck Mode”).Receiving a mode profile from a power tool and also receiving an updatedversion of the same mode profile is described above with respect to FIG.12. The external device 108 then compares the first mode profile (e.g.,from the second power tool) to the second mode profile (e.g., from theserver 112), and generates an indication when the first mode profile andthe second mode profile are different.

In some embodiments, the method 2600 of FIG. 26 also includes theexternal device 108, with its transceiver, receiving a third modeprofile from the power tool. The third mode profile is of a differentprofile type than the first profile type and includes a second parameterthat is different than the parameter of the first profile type.Receiving mode profiles of different types is discussed above, forexample, with respect to FIGS. 8A-B as compared to FIGS. 15A-D. Theexternal device 108 then displays a second control screen that includesthe second profile type and the second parameter. The second controlscreen, because it displays the second profile type and the secondparameter, is different than the first control screen. Such differencesare illustrated in comparing FIGS. 8A-B with FIGS. 15A-D, which eachdisplay a different control screen with different parameters (e.g., maxspeed as compared to starting speed) due to the different profile typesof the corresponding mode profiles.

The method of FIG. 26 may, in some embodiments, include the externaldevice 108 receiving identification information from the power tool 104that indicates a type of power tool corresponding to the power tool, asdescribed above with respect to, for example, the periodic advertisementmessages broadcasting a power tool's UBID. Additionally, the externaldevice 108 displays a list of mode profiles based on the type of powertool, as discussed with respect to, for example, FIG. 9. The externaldevice 108 then receives a selection of one of the mode profiles fromthe list, and transmits the selected one of the mode profiles to thepower tool 104, as described above with respect to, for example, FIGS. 9and 15A-D. Between the selection and transmission, the mode profile maybe customized through the external device 108 receiving user input via agraphical user interface as described above.

FIG. 27 illustrates a method 2700 of programming a power tool 104. Asshown in FIG. 27, the method 2700 includes establishing a communicationlink between the power tool 104 and the external device 108 (step 2705),similar to step 2605 of FIG. 26. After establishing the communicationlink, the power tool 104 transmits, with its transceiver 254, a firstmode profile stored on the memory of the power tool 104 (step 2710), asdescribed with respect to FIGS. 8A-B. As discussed above with respect toFIGS. 8A-B and 9, each mode profile is defined at least by a profiletype and a value associated with a parameter. Therefore, the first modeprofile is defined by a first profile type and a first value associatedwith a parameter for executing the profile type. The power tool 104 thenreceives, from the external device 108, a second mode profile that isdefined by the first profile type, but a second value associated withthe parameter for executing the first profile type (step 2715). In someof the discussions above, the second mode profile may be described as adifferent instance of the first mode profile because both the first modeprofile and the second mode profile share the same profile type.Receiving a modified mode profile at the power tool 104 is describedabove with respect to, for example, FIG. 11. After the power tool 104receives the second mode profile, the power tool 104 overwrites thefirst mode profile with the second mode profile in memory 232 (step2720). The power tool 104 may then operate according to the second modeprofile (e.g., the new mode profile) at step 2725.

In some embodiments, the method 2700 of FIG. 27 also includes receivinga user input via the mode selection switch 290, and entering an adaptivemode of the power tool 104 in response to the user input, as discussedabove with respect to FIGS. 4 and 8A-B. Additionally, in someembodiments, when the power tool 104 is in the adaptive mode, the method2700 also includes receiving, at the power tool 104, the second modeprofile (or a modified mode profile) in response to a user input at theexternal device 108, described as “live updating” above with respect toFIGS. 8A-B, such that the power tool 104 receives the modified orupdated mode profiles as soon as the mode profile is modified.

In some embodiments, when the power tool 104 is in the adaptive mode,the power tool 104 transmits a temporary mode profile (e.g., temporarymode profile 300 e) associated with the adaptive mode to the externaldevice 108, as discussed above with respect to, for example, the profilebank 302 shown in FIG. 5 and the control screens of FIGS. 8A-B. Thepower tool 104 then receives a message from the external device 108indicating that a mode button 400 corresponding to, for example, thefirst mode of the power tool 104 (e.g., mode “1”) has been selected bythe user. In response to receiving the message from the external device108, the power tool 104 overwrites the temporary mode profile 300 e withthe mode profile 300 a corresponding to the first mode of the power tool104, and sends the updated temporary mode profile 300 e to the externaldevice 108 for populating the control screen 380 accordingly, as shownin FIGS. 8A-B and discussed above.

Thus, the invention provides, among other things, a power tool thatcommunicates with an external device for configuring the power tool andobtaining data from the power tool. Various features and advantages ofthe invention are set forth in the following claims.

What is claimed is:
 1. A method of programming a power tool, the methodcomprising: establishing, with a transceiver of an external device, acommunication link between a power tool and the external device, theexternal device having the transceiver and an electronic processor;receiving, at the external device, a user selection of a mode profilebutton, the mode profile button corresponding to a first mode profile ofa plurality of mode profiles stored on the power tool; transmitting,with the transceiver, a request to the power tool for the first modeprofile stored on the power tool; receiving, with the transceiver andfrom the power tool, the first mode profile stored on the power toolbased on the user selection, the first mode profile being defined by aprofile type and a first value associated with a parameter to controlperformance of operation of the power tool; displaying, at the externaldevice, a control screen including the profile type and the parameter atthe first value; receiving a user input at the external device to modifythe first mode profile; generating, in response to the user input, anupdated first mode profile by modifying the parameter to be at a secondvalue; and transmitting, with the transceiver, the updated first modeprofile to the power tool.
 2. The method of claim 1, further comprising:receiving, at the external device, a second user selection of a secondmode profile button, the second mode profile button corresponding to asecond mode profile of the plurality of mode profiles stored on thepower tool; transmitting, with the transceiver, a second request to thepower tool for the second mode profile stored on the power tool;receiving, with the transceiver and from the power tool, the second modeprofile stored on the power tool based on the second user selection, thesecond mode profile being defined by (i) a second profile type that isdifferent from the first profile type and (ii) a third value associatedwith a second parameter to control performance of operation of the powertool, wherein the second parameter is different than the firstparameter; displaying, at the external device, a second control screendifferent than the first control screen and including the second profiletype and the second parameter at the third value; receiving a seconduser input at the external device; generating, in response to the seconduser input, an updated second mode profile by modifying the secondparameter to be at a fourth value; and transmitting, with thetransceiver, the updated second mode profile to the power tool.
 3. Themethod of claim 1, further comprising: receiving, at the externaldevice, a second user input, the second user input indicating one of themode profiles of the plurality of mode profiles stored on the power toolto be overwritten by the updated first mode profile; whereintransmitting the updated first mode profile to the power tool includestransmitting information corresponding to the one of the mode profilesthat is to be overwritten by the updated first mode profile.
 4. Themethod of claim 1, further comprising transmitting, from the externaldevice, the updated first mode profile to a remote servercommunicatively coupled to the external device.
 5. The method of claim4, further comprising: establishing, with the transceiver, a secondcommunication link between a second power tool and the external device;receiving, with the transceiver, a second mode profile stored on thesecond power tool; receiving, at the external device, the updated firstmode profile from the remote server; comparing, with the electronicprocessor, the second mode profile with the updated first mode profile;and generating, with the electronic processor, an indication to a userwhen the second mode profile and the updated first mode profile aredifferent.
 6. The method of claim 1, wherein establishing thecommunication link between the power tool and the external deviceincludes: wirelessly scanning, with the external device, for local powertools within a communication range of the transceiver; receiving, at theexternal device, identification information for each of the local powertools in response to wirelessly scanning within the communication range;displaying, at the external device, a list of the local power toolsdetected by the external device, the list including the power tool; andreceiving, at the external device, a selection of the power tool fromthe list of local power tools.
 7. The method of claim 1, furthercomprising receiving, with the transceiver, identification informationfrom the power tool, the identification information indicative of a typeof power tool corresponding to the power tool; displaying, at theexternal device, a list of mode profiles based on the type of power toolcorresponding to the power tool; receiving, at the external device, aselection of one of the mode profiles from the list of mode profiles;and transmitting, with the transceiver, the selected one of the modeprofiles from the list of mode profiles to the power tool.
 8. The methodof claim 1, further comprising: receiving, at the external device, asecond user selection of a reset actuator; and transmitting, with thetransceiver, a predetermined set of default mode profiles to the powertool in response to receiving the second user selection.
 9. A method ofprogramming a power tool, the method comprising: establishing, with atransceiver of a power tool, a communication link between the power tooland an external device, the power tool including the transceiver, amemory, and an electronic processor; receiving, with the transceiver, arequest from the external device for a first mode profile of a pluralityof mode profiles stored in the memory, the request being transmitted bythe external device in response to a user selection received at theexternal device, the user selection being of a mode profile buttoncorresponding to the first mode profile; in response to receiving therequest from the external device, transmitting, with the transceiver andto the external device, the first mode profile stored in the memory, thefirst mode profile being defined by a first profile type and a firstvalue associated with a parameter to control performance of operation ofthe power tool, the first profile type and the first value being shownon a control screen displayed on the external device; receiving, withthe transceiver, an updated first mode profile from the external device,the updated first mode profile being defined by the first profile typeand a second value associated with the parameter to control performanceof operation of the power tool, the first value being modified to thesecond value by the external device in response to a user input receivedat the external device; storing, in the memory and with the electronicprocessor, the updated first mode profile; and operating, with theelectronic processor, the power tool according to the updated first modeprofile.
 10. The method of claim 9, further comprising: receiving, withthe transceiver, a second request from the external device for a secondmode profile of the plurality of mode profiles stored in the memory, thesecond request being transmitted by the external device in response to asecond user selection being received at the external device, the seconduser selection being of a second mode profile button corresponding tothe second mode profile; in response to receiving the second requestfrom the external device, transmitting, with the transceiver and to theexternal device, the second mode profile stored in the memory, thesecond mode profile being defined by (i) a second profile type that isdifferent from the first profile type and (ii) a third value associatedwith a second parameter different than the first parameter and tocontrol performance of operation of the power tool, the second profiletype and the second value being shown on a second control screendisplayed on the external device that is different than the firstcontrol screen; receiving, with the transceiver, an updated second modeprofile from the external device, the updated second mode profile beingdefined by the second profile type and a fourth value associated withthe second parameter to control performance of operation of the powertool, the third value being modified to the fourth value by the externaldevice in response to a user input received at the external device;storing, in the memory and with the electronic processor, the updatedsecond mode profile; and operating, with the electronic processor, thepower tool according to the updated second mode profile.
 11. The methodof claim 9, wherein receiving the updated first mode profile from theexternal device includes receiving, with the transceiver and from theexternal device, information corresponding to one of the mode profilesof the plurality of mode profiles stored in the memory that is to beoverwritten by the updated first mode profile; and wherein storing theupdated first mode profile includes overwriting, in the memory and withthe electronic processor, the one of the mode profiles to be overwrittenwith the updated first mode profile.
 12. The method of claim 11, whereinthe one of the mode profiles to be overwritten is associated with asecond button of a mode selector of the power tool; and whereinoverwriting the one of the mode profiles to be overwritten with theupdated first mode profile includes associating the second button withthe updated first mode profile such that in response to the secondbutton being actuated, the electronic processor is configured to operatethe power tool according to the updated first mode profile when atrigger of the power tool is actuated.
 13. The method of claim 9,wherein establishing the communication link includes: broadcasting, withthe transceiver, an identifier of the power tool periodically, theidentifier indicating a power tool type of the power tool, and a uniqueidentifier for the power tool; and pairing, with the transceiver, thepower tool with the external device when the power tool is within acommunication range of the external device.
 14. The method of claim 9,further comprising receiving, via a mode selector of the power tool, asecond user input; and entering, with the electronic processor, anadaptive mode in which the power tool is programmed in response to thesecond user input; wherein receiving the updated first mode profileincludes receiving, with the transceiver, the updated first mode profilefrom the external device in response to the external device receivingthe user input that modifies the first value to the second value whenthe power tool is in the adaptive mode.
 15. A power tool devicecomprising: a motor; a wireless communication controller including atransceiver, the wireless communication controller configured toestablish a communication link between the power tool device and anexternal device; a memory configured to store a plurality of modeprofiles for operating the motor; and an electronic processor coupled tothe motor, the memory, and the wireless communication controller, theelectronic processor configured to receive, with the transceiver, arequest from the external device for a first mode profile of theplurality of mode profiles, the request being transmitted by theexternal device in response to a user selection received at the externaldevice, the user selection being of a mode profile button correspondingto the first mode profile; in response to receiving the request from theexternal device, transmit, with the transceiver and to the externaldevice, the first mode profile stored in the memory, the first modeprofile being defined by a first profile type and a first valueassociated with a parameter for controlling the motor, the first profiletype and the first value being shown on a control screen displayed onthe external device, receive, with the transceiver, an updated firstmode profile from the external device, the updated first mode profilebeing defined by the first profile type and a second value associatedwith the parameter for controlling the motor, the first value beingmodified to the second value by the external device in response to auser input received at the external device, store, in the memory, theupdated first mode profile, and control the motor to operate accordingto the updated first mode profile.
 16. The power tool device of claim15, wherein the electronic processor is further configured to: receive,with the transceiver, a second request from the external device for asecond mode profile of the plurality of mode profiles stored in thememory, the second request being transmitted by the external device inresponse to a second user selection being received at the externaldevice, the second user selection being of a second mode profile buttoncorresponding to the second mode profile; in response to receiving thesecond request from the external device, transmit, with the transceiverand to the external device, the second mode profile stored in thememory, the second mode profile being defined by (i) a second profiletype that is different from the first profile type and (ii) a thirdvalue associated with a second parameter different than the firstparameter and to control performance of operation of the power tooldevice, the second profile type and the second value being shown on asecond control screen displayed on the external device that is differentthan the first control screen; receive, with the transceiver, an updatedsecond mode profile from the external device, the updated second modeprofile being defined by the second profile type and a fourth valueassociated with the second parameter to control performance of operationof the power tool device, the third value being modified to the fourthvalue by the external device in response to a user input received at theexternal device; store, in the memory, the updated second mode profile;and control the motor to operate according to the updated second modeprofile.
 17. The power tool device of claim 15, wherein the electronicprocessor is further configured to receive, with the transceiver andfrom the external device, information corresponding to one of the modeprofiles of the plurality of mode profiles stored in the memory that isto be overwritten by the updated first mode profile; and wherein theelectronic processor is configured to store the updated first modeprofile by overwriting, in the memory, the one of the mode profiles tobe overwritten with the updated first mode profile.
 18. The power tooldevice of claim 17, wherein the one of the mode profiles to beoverwritten is associated with a second button of a mode selector of thepower tool device; and wherein the electronic processor is configured toassociate the second button with the updated first mode profile suchthat in response to the second button being actuated, the electronicprocessor is configured to control the motor to operate according to theupdated first mode profile when a trigger of the power tool device isactuated.
 19. The power tool device of claim 15, wherein the wirelesscommunication controller is configured to establish the communicationlink by: broadcasting, with the transceiver, an identifier of the powertool device periodically, the identifier indicating a power tool type ofthe power tool device, and a unique identifier for the power tooldevice; and pairing, with the transceiver, the power tool device withthe external device when the power tool device is within a communicationrange of the external device.
 20. The power tool device of claim 15,further comprising a mode selector coupled to the electronic processor,wherein the electronic processor is further configured to: receive, viathe mode selector, a second user input; and enter an adaptive mode inwhich the power tool device is programmed in response to the second userinput; receive, with the transceiver, the updated first mode profilefrom the external device in response to the external device receivingthe user input that modifies the first value to the second value whenthe power tool device is in the adaptive mode.